# # Where Linq Example

The `Where` Linq operator, probably the most commonly used, allows you to filter or find things where a certain boolean condition is met. Let's check out a few examples.

## # A basic example

To get started with, let's say we want to filter a list of numbers where all numbers are greater than 70.

### # Method syntax

Here, the lambda expression `num > 70` can be used as a condition.

Live example: https://dotnetfiddle.net/XDWEKR

``````int[] numbers = { 40, 10, 24, 60, 100, 55, 80, 75, 35 };

var numbersAboveSeventy = numbers.Where(num => num > 70);

// output: 100, 80, 75
``````

### # Query syntax

Using the query syntax, the same lambda expression can be also be used `num > 70`.

Live example: https://dotnetfiddle.net/Y2Qi2j

``````int[] numbers = { 40, 10, 24, 60, 100, 55, 80, 75, 35 };

var numbersAboveSeventy = from num in numbers
where num > 70
select num;

// output: 100, 80, 75
``````

## # Using contains - filtering from another list

If you had two lists, say `set1` and `set2` and you wanted to find out all those numbers in `set1` that also exist in `set2` only. How does one go about doing this? Well, we can use the same `Where` operator, with the addition of the `Contains` method.

### # Method syntax

So we have two arrays, `set1`, and `set2`. We want to filter `set1` so that only numbers that appear in `set1` also are contained in `set2`. The output as you can see is just `100` as this is the only number that appears in `set2`.

Live example: https://dotnetfiddle.net/VZm2W6

``````int[] set1 = { 40, 10, 24, 60, 100, 55, 80, 75, 35 };
int[] set2 = { 120, 110, 150, 160, 100, 155, 180, 175, 135 };

var results = set1.Where(i => set2.Contains(i));

//output: 100
``````

### # Query syntax

The query syntax is very similar and uses the `Contains` method.

Live example: https://dotnetfiddle.net/f8UkzT

``````int[] set1 = { 40, 10, 24, 60, 100, 55, 80, 75, 35 };
int[] set2 = { 120, 110, 150, 160, 100, 155, 180, 175, 135 };

var results = from s1 in set1
where set2.Contains(s1)
select s1;

//output: 100
``````

## # Where example with a list of objects

Let's take a look at a more real-world example with objects. Another common activity is to filter a list of objects based on a certain condition.

Check out the example below where we filter an array of customers that have a Visa card and the ExpiryYear is less than or equal to 2014

## # Method syntax

In the example below, we have an anonymous object which describes a customer payment profile. We want to find all users where the card is a Visa and the expiry year is less than and equal to 2015. Similar to the first basic example above, we can use a lambda expression, such as `customer.Card == "Visa" && customer.ExpiryYear <= 2015`.

Live example: https://dotnetfiddle.net/Y8ZPLN

``````var customers = new[] {
new{
Name = "Vernon",
DateOfBirth = "1994-Jun-25",
Active = true,
Card = "MasterCard",
CardNumer = "*** 1142",
ExpiryYear = 2022,
ExpiryMonth = 7
},
new {
Name = "Carrie",
DateOfBirth = "1986-Feb-01",
Active = false,
Card = "Visa",
CardNumer = "*** 2156",
ExpiryYear = 2015,
ExpiryMonth = 7
},
new {
Name = "Joanna",
DateOfBirth = "1972/10/13",
Active = true,
Card = "Visa",
CardNumer = "*** 7683",
ExpiryYear = 2014,
ExpiryMonth = 3
},
new {
Name = "Louis",
DateOfBirth = "1975/05/10",
Active = true,
Card = "Visa",
CardNumer = "*** 7683",
ExpiryYear = 2016,
ExpiryMonth = 2
}
};

var results = customers.Where(customer => customer.Card == "Visa"
&& customer.ExpiryYear <= 2015);

//output: Carrie, Joanna
``````

### # Query syntax

Again, similar to the method syntax, the same boolean lambda expression can be used.

Live example: https://dotnetfiddle.net/gGF2Yi

``````var customers = new[] {
new{
Name = "Vernon",
DateOfBirth = "1994-Jun-25",
Active = true,
Card = "MasterCard",
CardNumer = "*** 1142",
ExpiryYear = 2022,
ExpiryMonth = 7
},
new {
Name = "Carrie",
DateOfBirth = "1986-Feb-01",
Active = false,
Card = "Visa",
CardNumer = "*** 2156",
ExpiryYear = 2015,
ExpiryMonth = 7
},
new {
Name = "Joanna",
DateOfBirth = "1972/10/13",
Active = true,
Card = "Visa",
CardNumer = "*** 7683",
ExpiryYear = 2014,
ExpiryMonth = 3
},
new {
Name = "Louis",
DateOfBirth = "1975/05/10",
Active = true,
Card = "Visa",
CardNumer = "*** 7683",
ExpiryYear = 2016,
ExpiryMonth = 2
}
};

var results = from c in customers
where c.Card == "Visa" && c.ExpiryYear <= 2015
select c;

//output: Carrie, Joanna
``````