@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. Результат также выводится на консоль.