我想獲得所有的資產,其中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