2010-05-20 29 views
2

我用下面的類列表組和子組

class Country 
{ 
    int CtryID {get; set;} 
    List<City> city {get; set;} 
} 

class City 
{ 
    string county {get; set;}  
    int sqkm {get; set;} 
} 

的CtryID有像1,2,3價值觀和縣有值分別爲「縣1」,「2縣」等

我想這樣

1 
    County 1 
    County 6 
    County 3 
2 
    County 9 
    County 4 
    County 2 

結果我怎樣才能做到這一點使用Lambda查詢?

這是我用過的。該列表稱爲利斯塔

var lst = from aa in ListA 
        from cny in aa.ctryid 
        select new 
        { 
         CountryID= aa.CtryID, 
         CountyName= cny.County 
        }; 

查詢2:另外在我的第二個查詢(單獨從第一個)我想排序依據國家,然後將每個城市的國家,內不重複國家多次對每個市?

+0

?這只是預期的結果。我在問如何使用LINQ查詢來實現它 – Gokul 2010-05-20 08:11:25

+0

我會解釋一下:假設你有一個'List ' - 每個國家都有一個'List '。如果您遍歷各個國家並逐一打印它們,則會得到您想要的輸出。您不需要查詢或操作數據 - 您已經以您想要的方式存儲數據。 – Kobi 2010-05-20 08:14:06

+0

不幸的是,那不是我得到的。當我打印時,每個縣都會打印CtryID ..這不是我預期的輸出所需要的 – Gokul 2010-05-20 08:33:15

回答

0
var countryGroups = (from aa in ListA 
        from cny in aa.ctryid 
        select new 
        { 
         CountryID= aa.CtryID, 
         CountyName= cny.County 
        }).GroupBy(n => n.CountryID); 

這會將您的結果通過CountryID,但輸出將不會是一個列表 - 這將是分組。

要輸出,請遍歷countryGroups,並在每個對象中遍歷CountyName對象。