我想获得所有的资产,其中Class属性等于selectedIClassesList中的一个值;帮我Linq查询请
事情是这样的:
from x in Assets where selectedIClassesList.Contains(x.Class) select x
我想获得所有的资产,其中Class属性等于selectedIClassesList中的一个值;帮我Linq查询请
事情是这样的:
from x in Assets where selectedIClassesList.Contains(x.Class) select x
你可以做一个加入...
var query = from a in Assets
join s in selectedClassesList on a.Class equals s
select a;
+1击败我! – 2010-04-15 16:01:22
Assets.Where(x=>selectedIClassesList.Contains(x.Class));
如果我理解正确的,你的问题是,IClassesList没有包含方法?如果IClassesList是与x.Class相同类型的对象的IEnumerable,这应该工作。
from x in Assets where selectedIClassesList.Any(s => s == x.Class) select x
为了获得更好的性能,您尽可能创建一本字典。
var selectedClassesDict = selectedIClassesList.ToDictionary(s => s);
var selectedAssets = from a in Assets
where selectedClassesDict.ContainsKey(a.Class)
select a;
无法创建类型为'封闭类型'的常量值。在此上下文中仅支持基本类型(如Int32,String和Guid)。 – Agzam 2010-04-15 16:28:58
这听起来像你需要给我们多一点你的问题上下文。你正在使用LINQ to Objects,LINQ to SQL,LINQ to Entities等吗?你的资产类是什么样的? Assets.Class的类型是什么样的? IClassesList接口是什么样的? – StriplingWarrior 2010-04-15 17:37:23