LINQ使用C#问题

Dar*_*ung 5 c# linq

我有一个List<T>包含一些用户定义的类数据.

我想找到2个数据字段组合的唯一实例.

例如,如果条目包含字段名称和年龄,我希望名称和年龄组合的唯一案例,例如Darren 32,只应检索一次,即使它在列表中多次.

这可以用LINQ实现吗?

谢谢.

Ste*_*ger 6

您只需要提取这些数据字段并使其唯一:

var result = list
  .Select(x => new { Age = a.Age, Name = x.Name})
  .Distinct();
Run Code Online (Sandbox Code Playgroud)

这将创建一个包含Age和Name属性的匿名类型的IEnumerable.

如果您需要查找唯一数据背后的项目,则需要GroupBy.这将为列表提供每组后面的单个项目.

var result = list
  .GroupBy(x => new { Age = a.Age, Name = x.Name});

foreach (var uniqueItem in result )
{
    var age = uniqueItem.Key.Age;
    var name = uniqueItem.Key.Name;
    foreach (var item in uniqueItem)
    {
       //item is a single item which is part of the group
    }
}
Run Code Online (Sandbox Code Playgroud)