我有一个List<T>包含一些用户定义的类数据.
我想找到2个数据字段组合的唯一实例.
例如,如果条目包含字段名称和年龄,我希望名称和年龄组合的唯一案例,例如Darren 32,只应检索一次,即使它在列表中多次.
这可以用LINQ实现吗?
谢谢.
您只需要提取这些数据字段并使其唯一:
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)