【发布时间】:2010-12-07 19:05:04
【问题描述】:
我有一个 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 行收到错误 Field "t1.fieldnum" is not a reference field。单步调试调试器显示错误实际上发生在之前的行(Where() 方法),但无论哪种方式,我都不知道自己做错了什么。
我对 LINQ 很陌生,所以如果我做错了,请告诉我,谢谢!
【问题讨论】:
-
当您收到该错误时 allItems 是否为空?
-
不,它填充了 MyObject 类型的 IQueryable。
标签: linq data-structures where-clause iqueryable