c#如何将列表对象转换为列表字符串 (得到错误无法将对象强制转换的类型)

标签: Linq .Net C#
发布时间: 2017/2/28 23:12:15
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

嗨,朋友我有一个列表的对象private static List<Transaction> transactions;

我通过列表可以筛选一些标准数据查询。但我不能返回的列表的字符串。我得到错误

无法将对象强制转换的类型 <> f__AnonymousType1'6[System.Int32,System.String,System.String,System.String,System.String,System.String] 键入 'System.String'。

我的计划是使 datagridview 源像此列表dataGridView2.DataSource = BasicClass.banksearch("ABC");

public static List<string> banksearch(string bankname, string sdate = null, string edate = null, string condition = null)
    {
        List<string> returnstr = new List<string>();
        if (sdate == null && edate == null)//only bank
        {
            returnstr = transactions
                .Where(t => t.BankName == bankname)
                .Select(t => new
                 {
                     TransactionID = t.TransactionID,
                     BankName = t.BankName,
                     TemplateModel = t.TemplateModel,
                     Date = t.Date.ToString(),
                     PayeeName = t.PayeeName,
                     Amount = t.Amount.ToString()
                 }).Cast<String>().ToList();
        }
       return returnstr;
       }

我的类文件

class Transaction
{
        public int TransactionID { get; set; }
        public string BankName { get; set; }
        public string TemplateModel { get; set; }
        public DateTime Date { get; set; }
        public string PayeeName { get; set; }
        public decimal Amount { get; set; }        
}

请给我想法得到的结果

解决方法 1:

你不需要为了 (虽然如果你真的需要一个字符串能和你如何创建一个格式化的字符串,而不是匿名类对象) 作为数据源使用此结果转换为字符串。您可能需要这样的事情︰

public static List<Transaction> banksearch(string bankname, string sdate = null, string edate = null, string condition = null)
    {
        if (sdate == null && edate == null)//only bank
        {
           return transactions // type: List<Transaction>
                .Where(t => t.BankName == bankname)
                .ToList();
        } else {
           return new List<Transaction>();
       }
  }
赞助商