web-dev-qa-db-ja.com

linqを使用してオブジェクトの特定のプロパティのリストを返す

このようなクラスが与えられた場合:

_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()はそれを行うかもしれないと思っていましたが、望ましい結果を得る方法を見つけることができませんでした。

44
var list = stockItems.Select(item => item.StockID).ToList();
107
Amiram Korach

次のようにすることもできます。

ids = stockItems.ConvertAll<Guid>(o => o.StockID);
2
Ivan G

このようなものはどうですか?これは単純化できますか?

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

foreach (var bh in obj1.obj2WithCollection.obj2Collection)
{
    alltrans.AddRange(bh.obj3WithCollection.Select(e => e.TransactionCode).ToList());
}
0
user2259416