无法将 class 模型属性转换为列表 in.net

unable to convert a class model properties to list in.net

这是我的代码 class

public class WMBillable
    {
        public string Month { get; set; }
        public int Year { get; set; }
        public int MonthNum { get; set; }
    }

这是我的方法,其中包含:

 foreach (var dt in lDistinctDate)
                {

                    WMNB = new WMBillable();

                    DateTime Cur = new DateTime();

                    Cur = Convert.ToDateTime(dt.InvoiceDate);

                    WMNB.MonthNum = Convert.ToInt32(Cur.Month);

                    WMNB.Year = Convert.ToInt32(Cur.Year);

                    lstWMB.Add(WMNB);
                }



                var CurrentMonthYear = lstWMB.OrderByDescending(item => item.Year).ThenBy(x => x.Month).FirstOrDefault();

                List<WMBillable> lstQu = CurrentMonthYear.ToList();

在这行代码 List<WMBillable> lstQu = CurrentMonthYear.ToList() 中,我无法将提取的 linq 查询转换为列表。我收到类似 "WMBillable does not contain a definition for ToList() and no extension method toList accepting a first argument of type WMBillable could be found".

的错误

如果我进行自动更正,它会在我的模型中生成内部列表 class,就像这样

public class WMBillable
    {
        public string Month { get; set; }
        public int Year { get; set; }
        public int MonthNum { get; set; }

        internal List<WMBillable> ToList()
        {
            throw new NotImplementedException();
        }
    } 

我不知道如何更正这个问题。请帮助这个 .net 初学者。

您正在调用 FirstOrDefault:

var CurrentMonthYear = lstWMB.OrderByDescending(item => item.Year).ThenBy(x => x.Month).FirstOrDefault();

由此您可以得到 FIRST 或 DEFAULT 值,这只是一个。 尝试:

var CurrentMonthYear = lstWMB.OrderByDescending(item => item.Year).ThenBy(x => x.Month);

这将 return 一个可以转换为列表的 IEnumerable 集合。

MSDN FirstOrDefault

var CurrentMonthYear = lstWMB.OrderByDescending(item => item.Year).ThenBy(x => x.Month);

List<WMBillable> lstQu = CurrentMonthYear.ToList();

去掉FirstOrDefault函数调用,就可以转换了。