C# 使用lambda表达式获取不同的记录

C# 使用lambda表达式获取不同的记录,c#,lambda,C#,Lambda,我有一个修订类对象,它可以有多个细节类对象。在每个细节类中,我可以有多个前缀引用类型类。现在,我想为修订中的每个细节获取不同的前缀记录。如何使用lambda表达式实现该操作 List<ReferenceType> prefixes = (List<ReferenceType>)revision.Details .GroupBy(p => p.Prefix.Id) .Select(grp => grp.First()); 我只想在details

我有一个修订类对象,它可以有多个细节类对象。在每个细节类中,我可以有多个前缀引用类型类。现在,我想为修订中的每个细节获取不同的前缀记录。如何使用lambda表达式实现该操作

List<ReferenceType> prefixes = (List<ReferenceType>)revision.Details
    .GroupBy(p => p.Prefix.Id)
    .Select(grp => grp.First());
我只想在details类中选择前缀的不同记录。上面的代码不工作,其抛出错误类似于抛出错误无法将详细信息转换为引用类型。如何在修订版中获取单词前缀->详细信息->前缀???

这对我很有用


revision.Details.Wherex=>x.前缀!=null.Selecty=>y.Prefix.Distinct

@Tronics试试看。它能工作吗?你的代码出现了什么错误?那个演员看起来很可疑…:那演员阵容不行。应该使用ToList,而不要使用演员阵容。您使用什么标准来确定不同的演员阵容?现在您正在使用grp.First,它只获得一项。Distinct将不起作用,因为您有一个具有多个属性的类。您需要一些条件(如IEquals)来确定哪些属性用于这些条件。类似于这一点的东西可能会起到作用:条形前缀=修订版。详细信息。GroupByp=>p.Prefix.Id。Selectgrp=>grp.FirstOrDefault.Distinct.ToList;