我有一个Linq查询我不是100%肯定,有人可以用简单的英语解释它发生了什么
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 :(得分:2)
它将为您提供具有相同
的所有重复行它通过将具有相同条件的行分组在一起,然后仅显示具有多个行的组(即重复项)来实现此目的。
答案 1 :(得分:1)
var duplicates = this.BedStays
...分配给名为"复制的"来自这个名为" BedStays的一个属性。"
.GroupBy(
......按一组特定的特征分组......
i =>
称为单一的BedStay"我" (原本可以打电话给#34; aBedStay"或者#34; bedStay"但是作者带着"我")......
new { i.PatientClassificationCode, i.BedBandCode, i.BedLevelAddOnInd, i.ServiceCodeTypeCode, i.ServiceCode, i.DayRate })
...创建一个要排序的新对象(首先是第一个成员,然后是第二个成员,依此类推等等)......
.Where(g => g.Count() > 1)
...只选择至少有一个匹配成员的bedStay分组(我认为这是不必要的,因为根据定义,只有来自至少一个分组定义的所有分组才会存在)... < / p>
.Select(g => g.Key).ToList();
...最后我们只关心密钥,这是我们在新建{i.Property,i.Property,i.Property}对象时定义的分组。我们把它列为一个列表。
答案 2 :(得分:0)
有人可以用简单的英语解释发生了什么
查询主要通过对BedStays
字段进行分组来列出PatientClassificationCode, BedBandCode, BedLevelAddOnInd, ServiceCodeTypeCode, ServiceCode, DayRate
集合中的所有重复项。