这是我的课程代码
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();
}
}
我不知道要纠正这个问题。亲切地帮助这个网络初学者。
答案 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集合。
答案 1 :(得分:0)
var CurrentMonthYear = lstWMB.OrderByDescending(item => item.Year).ThenBy(x => x.Month);
List<WMBillable> lstQu = CurrentMonthYear.ToList();
删除FirstOrDefault
函数调用,然后就可以转换。