基于属性值检索列表中的不同对象

时间:2015-10-15 10:31:31

标签: c# lambda distinct

道歉,

为了解决这个问题而苦苦挣扎。

我需要根据'Answer'的属性值和EmployeeNumber的属性值

获取以下列表中的不同值

我从数据库中检索了值

EmployeeNumber     Answer
1234         a
1234         a
1234         c

9986         a
9986         a
9986         a

9987         b
9987         b
9987         a

我的清单结果应该是这样的

EmployeeNumber     Answer
1234         a
1234         c

9986         a

9987         b
9987         a

我怎样才能做到这一点?

我从以下var list1 = usersDevicesused.DistinctBy(x => x.Answer).ToList();开始,然后只返回3个值,这不是我追求的。

亲切的问候

1 个答案:

答案 0 :(得分:2)

您希望按EmployeeNumber + Answer进行分组,然后选择每个小组中的第一个:

var list1 = usersDevicesused
    .GroupBy(x => new { x.EmployeeNumber, x.Answer })
    .Select(grp => grp.First())
    .ToList();