J'ai essayé de déchiffrer comment faire moi-même mais ma compréhension de l'utilisation de LINQ est assez limitée. Ce que j'est deux classes en tant que tels:requête LINQ en utilisant la liste des objets propriété d'un objet
public class Grocery
{
public string ItemName { get; set; }
public List<ItemType> ItemTypes { get; set; }
}
public class ItemType
{
public double Weight { get; set; }
public long Quantity { get; set; }
}
L'idée étant que vous pouvez avoir un objet Grocery
avec ItemName
« carottes », et qui se décline en deux différents ItemTypes
, par exemple où Poids = 1lb et où Poids = 2lb, avec des quantités différentes de chacun. De toute évidence, il y aura beaucoup plus d'articles que seulement les carottes, et ceux-ci sont stockés dans une liste aussi:
List<Grocery> groceries;
Ce que je voudrais faire est d'obtenir une liste de toutes les quantités pour tous les produits d'épicerie, étant donné un certain poids. Par exemple. Je pouvais le faire comme ça pour tous les éléments qui ont un type de 1lb:
List<long> quantities = new List<long>();
foreach (Grocery grocery in groceries)
{
foreach (ItemType itemType in grocery.ItemTypes)
{
if (itemType.Weight == 1)
{
quantities.Add(itemType.Quantity);
}
}
}
Ce que je voudrais savoir comment je peux obtenir le même résultat en utilisant une expression LINQ, bien que je ne suis pas sûr que ce soit possible sans avoir à utiliser .ForEach
et en faisant simplement la même chose que le code ci-dessus mais de manière moins verbeuse (et donc moins lisible). Apprécier ton aide.
Réponse parfaite, merci pour cela. –