2012-08-02 75 views
0

選擇元素我有兩個類:的LINQ to SQL如何從列表

public class Artikel 
{ 
    int id{get;set;}; 
    string name{get;set;}; 
}  

public class NewArtikel 
{ 
    int id{get;set;}; 
    List<Artikel> artikels{get;set;}; 
} 

現在,我有第二類

List<NewArtikel> myList = new List<NewArtikel>() 

的列表中有LINQ到任何posibility SQL選擇從myList中的所有元素與所需Artikel.name

+0

[你嘗試過什麼?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) – Rafal 2012-08-02 09:53:18

回答

3

var allRequiredArtikels = myList.SelectMany(n => n.artikels) 
    .Where(a => a.name == "requiredName"); 

SelectMany將所有元素的所有Artikel展平,然後Where將它們過濾爲name


好了,所以,如果你想NewArtikel S作你可以做必要的名稱的Artikel

var newArtikels = myList.Where(n => n.artikels 
    .Any(a => a.name == "requiredName")); 
+0

好的,謝謝,但如果我需要導致列表類型列表 2012-08-02 10:27:11

+0

@MoraruViorel,我已經編輯了我的答案,假設'NewArtikel'沒有'name'屬性,這是正確的嗎?或者,我們是否在這個問題上遺漏了一些繼承? – Jodrell 2012-08-02 10:43:28

+0

非常感謝你 – 2012-08-02 10:44:53

3
List<NewArtikel> myFinalList = (from artikel in myList.artikels where artikel.name = "requiredName" 
select new NewArtikel(){ 
Id= artikel.Id 

}).ToList(); 
+0

東西不好,不清楚NewArtikel.artikels – 2012-08-02 10:40:30

+1

我編輯它。現在檢查 – 2012-08-02 11:00:22