[英]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.