Подтвердить что ты не робот

Возвращает список конкретного свойства объекта, используя 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() может это сделать, но не смог решить, как достичь желаемого результата.

4b9b3361

Ответ 1

var list = stockItems.Select(item => item.StockID).ToList();

Ответ 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());
}