我有一张IQueryable列表。我正在尝试将此列表拆分为第一个列表中某个字段(例如fieldnum)上的IQueryable匹配数组...
例如,如果fieldnum == 1,它应该进入数组[1]。我正在使用Where()基于此字段进行过滤,它看起来像这样:
var allItems = FillListofMyObjects();
var Filtered = new List<IQueryable<myObject>(MAX+1);
for (var i = 1; i <= MAX; i++)
{
var sublist = allItems.Where(e => e.fieldnum == i);
if (sublist.Count() == 0) continue;
Filtered[i] = sublist;
}
但是,我在if行上收到错误字段“t1.fieldnum”不是参考字段。单步执行调试器显示错误实际发生在行之前(Where()方法),但不管怎样,我不知道我做错了什么。
我对LINQ很陌生,所以如果我这样做了,请告诉我,谢谢!
答案 0 :(得分:4)
答案 1 :(得分:2)
为什么不使用字典?
var dictionary = allItems.ToDictionar(y => y.fieldnum);