使用LINQ,我尝试选择唯一的Customer作为Person对象。JSON我在下面的示例中使用数据,但我正在POCO使用C#. 在这个例子中,我选择JSON让事情变得简单。我有以下Customer清单:[ { "id": 123, "name: "John Smith", "transactionDate": "2019-08-21T10:30", "amount": 8.50 }, { "id": 234, "name: "Jane Doe", "transactionDate": "2019-08-22T18:21", "amount": 75.00 }, { "id": 123, "name: "John Smith", "transactionDate": "2019-08-26T10:30", "amount": 10.00 }]我想将独特的客户作为Person对象,结果应该如下所示:[ { "id": 123, "name": "John Smith" }, { "id": 234, "name": "Jane Doe" }]下面应该给我唯一的 ID。var uniqueIds = customers.Select(x => x.id).Distinct();我现在如何Person从中提取唯一的List<Customer>()?
2 回答
智慧大石
TA贡献1946条经验 获得超3个赞
这是有效的代码。
var uniquePersons = customers .Select(x => new Person() { Id = x.Id, Name = x.Name }) .GroupBy(g => g.Id) .Select(x => x.First()) .ToList();
我并不是说这是最好的方法,但这就是给我一个独特的列表的Person
原因Customer
。
我很想听到建议或解释,这是否是处理该问题的最佳方法,或者为什么建议的答案没有产生List<Person>()
独特的人。
MMMHUHU
TA贡献1834条经验 获得超8个赞
一种方法是使用GroupBy
:
var uniquePersons = customers .GroupBy(c => new Person() {Id = c.Id, Name = c.Name}) .Select(g => g.Key) .ToList();
- 2 回答
- 0 关注
- 131 浏览
添加回答
举报
0/150
提交
取消