c# - LINQ GroupBy 并选择不同的属性

标签 c# .net linq group-by linq-to-objects

如果我有以下集合:

var foos = new List<Foo>
{
    new Foo{ Name = "A", Value = 1 },
    new Foo{ Name = "B", Value = 1 },
    new Foo{ Name = "B", Value = 2 },
    new Foo{ Name = "C", Value = 1 },
};

最后我想:

A-1
B-2
C-1

在重复“B”的情况下,我想在哪里选择具有最高值的“B”?

类似于:

var filteredFoos = foos.GroupBy(x => x.Name).Select_Duplicate_With_Highest_Value

最佳答案

var query = from p in foos
            group p by p.Name into g
            select new
            {
                Name = g.Key,
                Value = g.Max(a => a.Value)
            };

关于c# - LINQ GroupBy 并选择不同的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14200307/

相关文章:

c# - 针对外部 Web 服务的 ASP.NET MVC 表单例份验证

c# - 在VS 2008中添加dll

c# - Magento 从 C# 应用程序通过 SOAP 添加产品

c# - .Net 中 NameValueCollection 的通用形式

vb.net - 没有时间字段的linq groupby vb.net

c# - 带 WHERE 的 Node 类型的 LINQ 搜索列表

c# - 检测聚合根内实体的变化

c# - 格式 DropDownList.TextValue

c# - 在 LINQ 中加入列并运行包含运算符

c# - 如何防止事件导致其自身的事件在 C# 中触发?