J'ai une liste de listes qui je veux trouver l'intersection pour comme ceci:
var list1 = new List<int>() { 1, 2, 3 };
var list2 = new List<int>() { 2, 3, 4 };
var list3 = new List<int>() { 3, 4, 5 };
var listOfLists = new List<List<int>>() { list1, list2, list3 };
// expected intersection is List<int>() { 3 };
Est-il possible de faire cela avec IEnumerable.Intersect()?
EDIT:
J'aurais dû être plus clair sur ce point: j'ai une liste de listes, je ne sais pas combien il y aura trois listes ci-dessus était juste un exemple, ce que j'ai est en fait un IEnumerable<IEnumerable<SomeClass>>
SOLUTION
Merci pour toutes les réponses grands. En fait il y a quatre options pour la résolution de ce: Liste+agrégat (@Marcel Gosselin), Liste+foreach (@JaredPar, @Gabe Moothart), HashSet+agrégat (@jesperll) et HashSet+foreach (@Tony Poney). J'ai fait quelques tests de performance sur ces solutions (variable nombre de listes, le nombre d'éléments dans chaque liste et le nombre aléatoire max taille.
Il s'avère que pour la plupart des situations, le HashSet est plus performante que la Liste (sauf avec de grandes listes et les petites de nombre aléatoire de taille, en raison de la nature de HashSet, je suppose.) Je ne pouvais pas trouver tout de réelle différence entre le foreach de la méthode et de l'ensemble de la méthode (la méthode foreach effectue légèrement mieux).
Pour moi, la méthode des agrégats est vraiment attrayant (et je vais avec ce que l'on a accepté la réponse), mais je ne dirais pas que c'est le plus lisible solution.. Merci encore à tous!