59

给定这样的类:

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()可能会这样做,但无法弄清楚如何达到预期的结果。

4

3 回答 3

137
var list = stockItems.Select(item => item.StockID).ToList();
于 2012-07-20T07:02:04.110 回答
3

你也可以这样做:

ids = stockItems.ConvertAll<Guid>(o => o.StockID);
于 2012-07-20T07:24:20.817 回答
0

这样的事情怎么样?这可以简化吗?

List<TranCode> alltrans = new List<TranCode>();

foreach (var bh in obj1.obj2WithCollection.obj2Collection)
{
    alltrans.AddRange(bh.obj3WithCollection.Select(e => e.TransactionCode).ToList());
}
于 2017-06-01T22:28:58.183 回答