请帮我查询Linq

请帮我查询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; 如果我理解正

我试图获取所有资产,其中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;

如果我理解正确,您的问题是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;