S'il vous plaît, aider à minimiser le code suivant: Il y a une classe propriété dictionnaire:Expression Linq. Aide mimize Code
class Foo
{
public int Field { get; set; }
public Dictionary<int, bool> dic { get; set; }
}
Et la liste des instances Foo. Je veux obtenir le dictionnaire uni de toutes les instances de classe comme ça:
...
var items = new List<Foo>
{
new Foo {Field = 1, Dic = new Dictionary<int, bool> {{1, true}, {2, false}}},
new Foo {Field = 2, Dic = new Dictionary<int, bool> {{3, true}, {2, false}}}
};
var result = new Dictionary<int, bool>();
foreach (var dics in items.Select(x => x.Dic))
foreach (var pair in dics)
if (!result.ContainsKey(pair.Key))
result.Add(pair.Key, pair.Value);
// testing output
foreach (var pair in result)
Console.WriteLine("{0}, {1}", pair.Key, pair.Value);
Est-il possible de le faire avec l'approche pure LINQ? Merci d'avance!
Merci: SelectMany est puissante méthode je ne savais rien :) –
j'avais fait celui tapé, et au moment où je suis rentré, il a été affiché>! – Nix
Oui, c'est vraiment puissant. Chaque fonction LINQ pourrait effectivement être implémentée par SelectMany :) –