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

本文关键字:转换 列表 对象 类型 字符串 获取 取错误 | 更新日期: 2023-09-27 18:28:57

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

我正在通过列表进行查询,以根据一些条件筛选数据。但是我无法返回列表字符串。我收到错误

无法强制转换类型为的对象<>f_AnonymousType1`6[System.Int32,System.String,System.String键入"System.String"。

我的计划是让数据网格视图源像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; }        
}

请给我一个想法来获得

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

的结果

无需将整个集合投影到Anonymous Object上。您实际所做的只是通过bankname:进行过滤

public static List<Transaction> BankSearch(string bankname, string sdate = null, string edate = null, string condition = null)
{
    List<Transaction> filteredTransactions = new List<Transaction>();
    if (sdate == null && edate == null)
    {
        filteredTransactions = transactions.Where(t => t.BankName == bankname).ToList();
    }
    return filteredTransactions;
}

您不需要转换为字符串就可以将此结果用作数据源(尽管如果您确实需要字符串,我可以向您展示如何创建格式化字符串而不是匿名类对象)。你可能需要这样的东西:

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>();
       }
  }
相关文章: