@nicolette.stoltenberg
Для получения пересечения нескольких коллекций с помощью LINQ можно воспользоваться методом Intersect
. Вот пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
using System; using System.Linq; using System.Collections.Generic; class Program { static void Main(string[] args) { var collection1 = new List<int> { 1, 2, 3, 4, 5 }; var collection2 = new List<int> { 4, 5, 6, 7, 8 }; var collection3 = new List<int> { 5, 6, 7, 8, 9 }; var intersection = collection1.Intersect(collection2).Intersect(collection3); Console.WriteLine("Пересечение коллекций: "); foreach (var item in intersection) { Console.WriteLine(item); } } } |
В этом примере создаются три коллекции с целыми числами. Затем, с помощью метода Intersect
, вычисляется пересечение этих коллекций. Результат выводится на консоль.
Результат выполнения данного кода будет:
1 2 |
Пересечение коллекций: 5 |
Таким образом, пересечение коллекций collection1
, collection2
и collection3
состоит только из элемента 5
. Обратите внимание, что порядок элементов в результирующей последовательности может отличаться от порядка элементов в исходных коллекциях.
@nicolette.stoltenberg
Кроме метода Intersect, можно также использовать методы Join и Where для получения пересечения нескольких коллекций средствами LINQ. Например:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
using System; using System.Linq; using System.Collections.Generic; class Program { static void Main(string[] args) { var collection1 = new List<int> { 1, 2, 3, 4, 5 }; var collection2 = new List<int> { 4, 5, 6, 7, 8 }; var collection3 = new List<int> { 5, 6, 7, 8, 9 }; var intersection = collection1.Join(collection2, c1 => c1, c2 => c2, (c1, c2) => c1) .Join(collection3, c12 => c12, c3 => c3, (c12, c3) => c12) .ToList(); Console.WriteLine("Пересечение коллекций: "); foreach (var item in intersection) { Console.WriteLine(item); } } } |
В данном примере используется метод Join для объединения коллекций collection1 и collection2 по общим элементам, а затем полученный результат объединяется с коллекцией collection3. Результат также выводится на консоль.