请帮我解决Linq的问题

时间:2010-04-15 15:42:12

标签: linq

我正在尝试获取Class属性等于selectedIClassesList中的一个值的所有资产;

这样的事情:

from x in Assets where selectedIClassesList.Contains(x.Class) select x

3 个答案:

答案 0 :(得分:3)

你可以加入......

var query = from a in Assets
            join s in selectedClassesList on a.Class equals s
            select a;

答案 1 :(得分:2)

Assets.Where(x=>selectedIClassesList.Contains(x.Class));

答案 2 :(得分:0)

如果我理解正确,你的问题是IClassesList没有contains方法吗?如果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;