使用 linq 返回对象的特定属性列表
Posted
技术标签:
【中文标题】使用 linq 返回对象的特定属性列表【英文标题】:Return list of specific property of object using linq 【发布时间】:2012-07-19 10:28:45 【问题描述】:给定一个这样的类:
public class Stock
public Stock()
public Guid StockID get; set;
public string Description get; set;
假设我现在有一个List<Stock>
。如果我想检索所有 StockID 的列表并将其填充到 IEnumerable 或 IList 中。显然我可以做到。
List<Stock> stockItems = new List<Stock>();
List<Guid> ids = new List<Guid>();
foreach (Stock itm in stockItems)
ids.Add(itm.StockID);
但是有什么方法可以使用 Linq 来实现相同的结果吗?我认为Distinct()
可能会这样做,但无法弄清楚如何达到预期的结果。
【问题讨论】:
【参考方案1】:var list = stockItems.Select(item => item.StockID).ToList();
【讨论】:
大声笑,现在我觉得自己像个白痴。我应该解决这个问题的。谢谢! 如何进行逆过程? @Pedro77 使用.Reverse()
?【参考方案2】:
你也可以这样做:
ids = stockItems.ConvertAll<Guid>(o => o.StockID);
【讨论】:
【参考方案3】:这样的事情怎么样?这可以简化吗?
List<TranCode> alltrans = new List<TranCode>();
foreach (var bh in obj1.obj2WithCollection.obj2Collection)
alltrans.AddRange(bh.obj3WithCollection.Select(e => e.TransactionCode).ToList());
【讨论】:
尝试使用SelectMany()
这样的函数obj1.obj2WithCollection.obj2Collection.SelectMany(bh => bh.obj3WithCollection.Select(e => e.TransactionCode));
见***.com/questions/1191054/…以上是关于使用 linq 返回对象的特定属性列表的主要内容,如果未能解决你的问题,请参考以下文章