English 中文(简体)
林克公司是否开展了一项行动,以确定在收集中是否有物品,这些物品的配对价值相同?
原标题:Is there a Linq operation to determine whether there are items in a collection who have the same values for a pair of properties?
  • 时间:2009-10-27 11:44:59
  •  标签:

页: 1 T拥有2种特性。 Property A and Property B. 这一收集工作必须遵守的规则是,A和B的价值观组合必须在收集工作中独一无二。 换言之,A和B必须作为一个综合的主要关键。

在Linq I,是否有行动可以用来检查这一状况? 我期望它像现在这样做。

if (items.Select(x => x.Name).Distinct().Count() != items.Select(x => x.Name).Count())

以上说明是,我如何检查在收集中是否有重复名称的项目,但我不知道如何对不止一件财产进行收集。

最佳回答

采用匿名方式选择综合钥匙,例如

int totalCount = items.Count();
int distinctCount = items.Select(x => new { x.Name, x.Other })
                         .Distinct()
                         .Count();

匿名类型自动实施平等,并根据其特性(以及对这些财产的类型设定的平等比较)采用散射法。

问题回答

简单地选定为新的匿名物体

var keys = items.Select( x => new { x.Name, x.Other } ).ToList();

if (keys.Distinct().Count() != keys.Count())
{
 ...
}




相关问题
热门标签