C# LINQ Distinct(),但以编程方式选择赢家

C# LINQ Distinct(),但以编程方式选择赢家,c#,linq,C#,Linq,我发现,关于根据特定属性选择不同的项 下面将查看我的“结果”列表,按ID对它们进行分组,并选择第一个作为获胜者 results.GroupBy(r => r.ID).Select(g => g.First()).ToList(); 但是,我如何有条件地选择获胜者? 例如,每个结果都包含一个名为Language.Name的属性 当选择不同的结果时,我想选择result.Language.Name.ToLower()==regionalsocode中的一个作为赢家(如果存在) 如果不存

我发现,关于根据特定属性选择不同的项

下面将查看我的“结果”列表,按ID对它们进行分组,并选择第一个作为获胜者

results.GroupBy(r => r.ID).Select(g => g.First()).ToList();
但是,我如何有条件地选择获胜者?

例如,每个结果都包含一个名为Language.Name的属性

当选择不同的结果时,我想选择
result.Language.Name.ToLower()==regionalsocode
中的一个作为赢家(如果存在)


如果不存在,则应选择
result.Language.Name.ToLower()=“en”
作为获胜者。

您只需更改
Select()

results.GroupBy(r => r.ID).Select(g => g.First()).ToList();

您只需更改
Select()


又是什么问题?
g.First()
以编程方式选择获胜者。又是什么问题?
g.First()
以编程方式选择获胜者。