# C# Intersect

**Intersect** applies set theory. It is an extension method from the System.Linq namespace. In set theory, an intersection is the subset of each collection that is found in both collections. The Intersect method here is elegant.

## Example

This example program invokes the Intersect method in the System.Linq namespace. Please note how the two using directives at the top of the program specify where the types are located. We use the array initializer syntax.

Array Initializers**Each array** has three numbers in it. Both arrays have the numbers 2 and 3, and one other number. The results show that the Intersect method returns these exact numbers: 2 and 3. These are the intersecting numbers.

Array**Tip:**Intersect here compares elements in the default way for their type. For ints, a simple numeric comparison for equality is done.

Int**C# program that uses Intersect extension method**
using System;
using System.Linq;
class Program
{
static void Main()
{
*// Assign two arrays.*
int[] array1 = { 1, 2, 3 };
int[] array2 = { 2, 3, 4 };
*// Call Intersect extension method.*
var intersect = array1.__Intersect__(array2);
*// Write intersection to screen.*
foreach (int value in intersect)
{
Console.WriteLine(value);
}
}
}
**Output**
2
3

## Summary

We examined the Intersect method that is found in the namespace System.Linq in the C# language. We computed the intersecting part of two integer arrays using a declarative syntax, rather than an imperative loop construct.

**Also:**A declarative syntax is more concise. But an imperative style could improve the efficiency of this particular operation.