C# lambda表达式中的Linq Group by

C# lambda表达式中的Linq Group by,c#,linq,lambda,C#,Linq,Lambda,我有型号以下列表: Id Name ---------------------------------------------------- 1 john 1 john 1 john 2 jennifer 2 jennifer 3

我有
型号
以下列表:

    Id                  Name
----------------------------------------------------
    1                   john
    1                   john
    1                   john
    2                   jennifer
    2                   jennifer
    3                   smith
我想将
模型
分组以显示以下结果

    Id                  Name
----------------------------------------------------
    1                   john
    2                   jennifer
    3                   smith

如果
Model
实现了,那么它就微不足道了:

var noDuplicates = list.Distinct();

如果
Model
实现该接口没有意义,您可以使用
Distinct
,允许您在侧面指定相等标准。的文档中有一个关于如何实现此类的示例。

如果
Model
实现了,那么它很简单:

var noDuplicates = list.Distinct();
                ILookup<int, string> lookup =
                list
                .ToLookup(p => p.Id,
                          p => p.Name);

            foreach (IGrouping<int, string> group in lookup)
            {
                Console.WriteLine(group.Key);
                foreach (string name in group)
                    Console.WriteLine("    {0}", name);
            }
如果
Model
实现该接口没有意义,您可以使用
Distinct
,允许您在侧面指定相等标准。的文档中有一个关于如何实现此类功能的示例。

ILookup查找=
                ILookup<int, string> lookup =
                list
                .ToLookup(p => p.Id,
                          p => p.Name);

            foreach (IGrouping<int, string> group in lookup)
            {
                Console.WriteLine(group.Key);
                foreach (string name in group)
                    Console.WriteLine("    {0}", name);
            }
列表 .ToLookup(p=>p.Id, p=>p.Name); foreach(查找中的I分组组) { 控制台写入线(组键); foreach(组中的字符串名称) Console.WriteLine(“{0}”,名称); }
ILookup查找=
列表
.ToLookup(p=>p.Id,
p=>p.Name);
foreach(查找中的I分组组)
{
控制台写入线(组键);
foreach(组中的字符串名称)
Console.WriteLine(“{0}”,名称);
}
来自型号中的v 按v.id将v分组为g 从模型中的v中选择g

按v.id将v分组为g
选择g

@Morteza。。谢谢您的回答,但请确保当答案只有一行或更少的时候,它应该是一个评论,希望您能理解我:)@Morteza。。感谢您的回答,但请确保当答案只有一行或更少的时候,它应该是一个评论,希望您得到我:)