我想要找到一个列表中,在一个属性上不同的项目数量,而这个属性本身是一个列表。我在这里找到了使用Linq的示例:
List<Person> distinctPeople = allPeople
.GroupBy(p => p.PersonId)
.Select(g => g.First())
.ToList();
如果属性PersonId
是标量的话,这种方法是有效的。但在我的情况下,这种方法不起作用,并且即使ListOfActions
在所有项目中都相等,在下面SelectedTargets
中返回的项始终是唯一的:
List<Target> distinctTargets = SelectedTargets.GroupBy(p => p.ListOfActions).Select(g => g.First()).ToList();
如果我选择
ListOfActions
中的第一项,它会起作用:List<Target> distinctTargets = SelectedTargets.GroupBy(p => p.ListOfActions[0]).Select(g => g.First()).ToList();
那么我如何检查整个列表ListOfActions
的相等性?(不一定要使用Linq)
SelectedTargets
的定义如下:
List<Target> SelectedTargets = new List<Target>();
并且是DispensingActionList:
private DispensingActionList ListOfActions = new DispensingActionList();
public class DispensingActionList : List<DispensingAction>
{ ...