提问人:Maxim Gershkovich 提问时间:7/20/2012 更新时间:6/2/2017 访问量:87234
使用 linq 返回对象特定属性的列表
Return list of specific property of object using linq
问:
给定这样的类:
public class Stock
{
public Stock() {}
public Guid StockID { get; set; }
public string Description { get; set; }
}
假设我现在有一个 .如果我想检索所有 StockID 的列表并将其填充到 IEnumerable 或 IList 中。显然我可以做到这一点。List<Stock>
List<Stock> stockItems = new List<Stock>();
List<Guid> ids = new List<Guid>();
foreach (Stock itm in stockItems)
{
ids.Add(itm.StockID);
}
但是,有没有办法使用 Linq 来实现相同的结果呢?我想可能会这样做,但无法弄清楚如何达到预期的结果。Distinct()
答:
158赞
Amiram Korach
7/20/2012
#1
var list = stockItems.Select(item => item.StockID).ToList();
评论
4赞
Maxim Gershkovich
7/20/2012
哈哈,好吧,现在我觉得自己像个白痴。我应该解决这个问题。谢谢!
0赞
Pedro77
3/6/2017
我怎样才能做逆过程?
0赞
Amiram Korach
3/6/2017
@Pedro77使用 ?.Reverse()
3赞
Ivan Golović
7/20/2012
#2
你也可以这样做:
ids = stockItems.ConvertAll<Guid>(o => o.StockID);
1赞
user2259416
6/2/2017
#3
像这样的事情怎么样?这可以简化吗?
List<TranCode> alltrans = new List<TranCode>();
foreach (var bh in obj1.obj2WithCollection.obj2Collection)
{
alltrans.AddRange(bh.obj3WithCollection.Select(e => e.TransactionCode).ToList());
}
评论
1赞
Dennis Rosenbaum
3/30/2018
尝试使用这样的函数 请参阅 stackoverflow.com/questions/1191054/...SelectMany()
obj1.obj2WithCollection.obj2Collection.SelectMany(bh => bh.obj3WithCollection.Select(e => e.TransactionCode));
评论