请帮我查询Linq
我试图获取所有资产,其中Class属性等于selectedClassList中的一个值 大概是这样的:请帮我查询Linq,linq,Linq,我试图获取所有资产,其中Class属性等于selectedClassList中的一个值 大概是这样的: 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; 如果我理解正
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;
如果我理解正确,您的问题是IClasseList没有包含方法?如果IClasseList是一个IEnumerable,其对象类型与x.Class相同,则应该可以使用
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;
无法创建“Closure type”类型的常量值。在此上下文中只支持基本类型(“如Int32、String和Guid”)。听起来您需要在您的问题中为我们提供更多的上下文。您是否使用LINQ到对象、LINQ到SQL、LINQ到实体等?你的资产类别是什么样的?资产类别的类型是什么?IClasseList界面看起来像什么?
var selectedClassesDict = selectedIClassesList.ToDictionary(s => s);
var selectedAssets = from a in Assets
where selectedClassesDict.ContainsKey(a.Class)
select a;