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

时间:2018-03-28 05:07:51

标签: c# .net linq linq-to-sql

这是我的课程代码

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不包含ToList()的定义,并且没有扩展方法toList接受第一个WMBillable类型的参数”。

如果我进行自动更正,它会在我的模型类中生成内部列表,如此

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();
        }
    } 

我不知道要纠正这个问题。亲切地帮助这个网络初学者。

2 个答案:

答案 0 :(得分:1)

您正在调用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);

将返回一个可以转换为列表的IEnumerable集合。

MSDN FirstOrDefault

答案 1 :(得分:0)

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

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

删除FirstOrDefault函数调用,然后就可以转换。