Étant donné une classe comme celle-ci:
public class Stock
{
public Stock() {}
public Guid StockID { get; set; }
public string Description { get; set; }
}
Disons que j'ai maintenant un List<Stock>
. Si je souhaite récupérer une liste de tous les StockID et la remplir dans un IEnumerable ou IList. Évidemment, je peux le faire.
List<Stock> stockItems = new List<Stock>();
List<Guid> ids = new List<Guid>();
foreach (Stock itm in stockItems)
{
ids.Add(itm.StockID);
}
Mais existe-t-il un moyen d'utiliser Linq pour obtenir le même résultat? Je pensais que Distinct()
pourrait le faire mais je n'ai pas pu trouver comment obtenir le résultat souhaité.
var list = stockItems.Select(item => item.StockID).ToList();
Vous pouvez également le faire comme ceci:
ids = stockItems.ConvertAll<Guid>(o => o.StockID);
Que diriez-vous quelque chose comme ça? Cela peut-il être simplifié?
List<TranCode> alltrans = new List<TranCode>();
foreach (var bh in obj1.obj2WithCollection.obj2Collection)
{
alltrans.AddRange(bh.obj3WithCollection.Select(e => e.TransactionCode).ToList());
}