我有一个对象列表 - 假设它们是订单。
顺序
OrderID<br/>
Date<br/>
SalesmanId<br/>
...
我想提取一个Distinct
SalesmanId
列表来自这个列表。做这个的最好方式是什么?我不认为它是手动循环...是吗?
更新 感谢您的回复。我想到了一个额外的要求(在 Jon Skeets 回答后概述)并将其编码如下:
var salesusers = from s in lstOrders
group s by new { s.SalesUserId,s.Username}
into g
select new { UserName = g.Key.Username, UserId = g.Key.SalesUserId };
它有效,但我不确定这是否是正确的方法,或者我是否偏离了目标?
谢谢。
更新#2: 这个跑啊跑-像我这样的新手可能会找到这个linked question的答案也很有用。
最佳答案
如果您只需要获取 SalesmanIds,那很简单:
var salesmanIds = orders.Select(x => x.SalesmanId)
.Distinct();
调用ToList()
如果你需要它作为 List<T>
.
您需要为 System.Linq
使用指令.
编辑:好的,要同时获取名称和 ID,您可以使用:
var salesmanIds = orders.Select(x => new { x.SalesmanId, x.UserName })
.Distinct();
关于c# - 我应该如何从自定义对象的 List<T> 中提取不同值的集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6266022/