簡體   English   中英

Linq group by 多列

[英]Linq group by with multiple columns

凈核心項目。 例如,我正在嘗試檢索唯一行,我的表如下所示

Country_id  Country Reegion
----------  ------- -------
1           Germany Europe
2           UK      Europe
3           UK      Europe

結果,我試圖做到這一點。

Country_id  Country   Reegion
----------  -------   -------
    1       Germany   Europe
    2       UK        Europe

在上面的示例中,值為 2 和 3 的 Countryid 具有相同的值 UK,因此我只想檢索一行。 我嘗試使用下面的代碼

var listOfGeographies = await GeographyRepository.GetAsync(x=>x.IsActive == true).ConfigureAwait(false);
var listOfUniqueGeographies = listOfGeographies.GroupBy(x => x.Country).Select(y => y.First());
IEnumerable<GeographyEntity> result = from o in listOfUniqueGeographies
                                      select new GeographyEntity
                                      {
                                          Id = o.CountryId,
                                          Country = o.Country,
                                          Region = o.Region,
                                          SubRegion = o.SubRegion
                                      };

上面的代碼將返回所有行而不分組。 我可以知道在上面的 linq 查詢中我必須做的任何更改嗎? 有人可以幫我解決這個問題。 任何幫助,將不勝感激。 謝謝

似乎您需要對Country name 進行分組,因為它在數據中重復但具有不同的 id(這很奇怪),在這種情況下您需要分組 select 第一個:

var result1 = myRepoOutput.GroupBy(x => x.Country)
                          .Select(b => b.First());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM