c# - 我应该如何从自定义对象的 List<T> 中提取不同值的集合?

标签 c# asp.net linq list lambda

我有一个对象列表 - 假设它们是订单。

顺序
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/

相关文章:

c# - 将焦点设置到 uwp 中的文本框

c# - 类库 - 程序不包含适合入口点的静态 ‘Main’ 方法

jquery - 使用 jQuery jsonp 跨域调用 ASP.NET Web 服务

c# - 对 ITVF 的引用引发 "second operation started on this context before a previous operation completed"异常

c# - 如何将 XElement 文档记录放入对象列表中

c# - 是否可以在 Xamarin 表单内容页面和 Android Activity 之间导航?

c# - 如何在 C# 中从 XML 中读取键值

asp.net - SignalR cookie 未从客户端发送

c# - 数据绑定(bind)下拉列表

c# - 如何重构此代码以进行 LINQ 过滤?