Linq查询用简单的英语

问题描述:

解释我有一个LINQ查询我不是100%肯定的,有人可以解释它用简单的英语发生了什么Linq查询用简单的英语

var duplicates = this.BedStays 
        .GroupBy(i => new { i.PatientClassificationCode, i.BedBandCode, i.BedLevelAddOnInd, i.ServiceCodeTypeCode, i.ServiceCode, i.DayRate }) 
        .Where(g => g.Count() > 1) 
        .Select(g => g.Key).ToList(); 
+0

感谢您对编辑 – user2127

有人可以用简单的英语解释什么正在发生

查询主要是通过在PatientClassificationCode, BedBandCode, BedLevelAddOnInd, ServiceCodeTypeCode, ServiceCode, DayRate字段上进行分组来列出BedStays集合中的所有重复项。

+0

感谢大家,这就是我的想法,但从来没有见过一个LINQ查询构建这样 – user2127

+0

通常这是一个寻找重复的,类似于SQL :-) –

var duplicates = this.BedStays 

...将此属性名为“BedStays”的属性分配给一个名为“duplicates”的变量。

.GroupBy(

...由一组具体特性分组...

i => 

称为单BedStay“我”(可能反而把它称为“aBedStay”或“bedStay”,但笔者去与“我”)......

new { i.PatientClassificationCode, i.BedBandCode, i.BedLevelAddOnInd, i.ServiceCodeTypeCode, i.ServiceCode, i.DayRate }) 

...创建一个新的对象由第一构件进行排序(第一,然后通过第二,等等等等)...

.Where(g => g.Count() > 1) 

...只有采摘bedStay分组,其中至少还有一个匹配成员(我相信这是不必要的,因为所有的分组,根据定义,将只存在,如果从至少一个分组的定义)...

.Select(g => g.Key).ToList(); 

......最后我们只关心关键字,这是我们在新建{i.Property,i.Property,i.Property}对象时定义的分组。我们把它列入清单。

+0

多个匹配的成员方法.. > 1 –

它会给你具有相同

  • PatientClassificationCode所有重复行
  • BedBandCode
  • BedLevelAddOnInd
  • ServiceCodeTypeCode
  • ServiceCode
  • DayRate

它通过将具有相同条件的行分组在一起,然后仅显示具有多行(即重复)的组来完成此操作。