所有的項目我想獲得從這個LINQ查詢相交的所有值:選擇相交
Where(x => x.Attribute("name").Value).Intersect(myList).Any();
我不知道如何添加一個選擇。
所有的項目我想獲得從這個LINQ查詢相交的所有值:選擇相交
Where(x => x.Attribute("name").Value).Intersect(myList).Any();
我不知道如何添加一個選擇。
我假設你想要的所有屬性( 「名稱」)。價值是在myList中
您可以做
Where(x=>myList.Contains(x.Attribute("name").Value)).Select(x=>x.Attribute("name").Value)
或
Select(x=>x.Attribute("name").Value).Intersect(myList)
第二個答案獲取併發生錯誤:_Cannot無法將lambda表達式轉換爲委託類型'System.Func
@kmxillo我做了一個錯字,錯過了'x =>'。我已經更新了答案 – 2012-07-05 10:57:09
你爲什麼要交集?爲什麼不只是List.Contains?
data.Where(x => myList.Contains(x.Attribute("name").Value).ToList();
或
data.Select(x => x.Attribute("name").Value).Intersect(myList);
x是XElement。如何轉換爲列表
字符串列表是 – kmxillo 2012-07-05 10:30:00
@kmxillo:請詳細說明。 – abatishchev 2012-07-05 10:30:11
假設Where應用於'T'集合,是否希望您的結果是'T'的集合或'T.Attribute(「name」)類型的集合。 – 2012-07-05 10:16:46
@BobVale T.Attribute(「name」)的集合值。 – kmxillo 2012-07-05 10:40:32