La clausola Where specifica una condizione di filtraggio da applicare ad un datasouce.
Tramite il predicato viene applicata una condizione tipo boolean su ciascun elemento del datasource e,
successivamente tramite una query di ricerca vengono estratti tali oggetti che vengono valutati a true. 
Un esempio qui di seguito che verifica la nazionalità di un elenco di clienti.
Questa query verifica se il o i clienti abbiano nazionalità Italiana, successivamente tramite
un ciclo foreach vengono visualizzati all'utente finale. 

Questo esempio di query Linq mediante la clausola Where verifica la nazionalita e
restituisce all'utente finale quanti clienti o cliente sia di nazionalità Italiana
Richiamo NameSpace dal sistema operativo

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
// Spazio dei nomi Linq_Where_
namespace Linq_Where_
 {
    // Classe Program
    class Program
    {
        // Metodo Statico Main
        static void Main(string[] args)
        {
            // Richiamo metodo LetturaNazionalità
            LetturaNazionalita();
        }
        
        // Metodo Statico LetturaNazionalità
        public static void LetturaNazionalita()
        {
            // Matrice Nationality
            var Nationality = new[]
            {
                // Dichiarazione Cliente 1 su matrice Nationality
                new { CustomerID = 1,Nome = " Customer1 " , Cognome = " xxxxx " , Nazionalità = " Italia "},
                // Dichiarazione Cliente 2 su matrice Nationality
                new { CustomerID = 1,Nome = " Customer2 " , Cognome = " xxxxx " , Nazionalità = " Italia "},
                // Dichiarazione Cliente 3 su matrice Nationality 
                new { CustomerID = 1,Nome = " Customer3 " , Cognome = " xxxxx " , Nazionalità = " Italia "},
                // Dichiarazione Cliente 4 su matrice Nationality
                new { CustomerID = 1,Nome = " Customer4 " , Cognome = " xxxxx " , Nazionalità = " Italia "},
                // Dichiarazione Cliente 5 su matrice Nationality
                new { CustomerID = 1,Nome = " Customer5 " , Cognome = " xxxxx " , Nazionalità = " Italia "},
                // Dichiarazione Cliente 6 su matrice Nationality
                new { CustomerID = 1,Nome = " Customer6 " , Cognome = " xxxxx " , Nazionalità = " Usa "},
                // Dichiarazione Cliente 7 su matrice Nationality 
                new { CustomerID = 1,Nome = " Customer7 " , Cognome = " xxxxx " , Nazionalità = " Usa "},
                // Dichiarazione Cliente 8 su matrice Nationality 
                new { CustomerID = 1,Nome = " Customer8 " , Cognome = " xxxxx " , Nazionalità = " Usa "},
                };
 
                // Interfaccia IEnumerable
                IEnumerable <string> usCountry =
                // Filtra i dati della matrice e restituisce solo i nomi con nazionalità ITALIA
                Nationality.Where(addr =>  String.Equals(addr.Nazionalità, " Italia "))
                // Seleziona solo i nomi uguali a ITALIA
                .Select(usConut => usConut.Nazionalità);
                // Conta quante righe con il nome ITALIA sono presenti
                int i = 0;
                // Carica su strings name tutti i nomi ITALIA trovati
                foreach (string name in usCountry)
                {
                    // Visualizza a utente tutti i nomi ITALIA trovati
                    Console.WriteLine(" Riga " + i.ToString() + " " + name);
                    // Incrementa variabile ad ogni riga visualizzata su video
                    i = i + 1;
                }

                // Riga vuota
                Console.WriteLine(" ");

                // Se variabile i e maggiore di uno
                if (i > 1)
                {
                    // Avvisa utente quante righe sono state trovate
                    Console.WriteLine(" Ricerca eseguita , trovati {0} clienti ", i.ToString());
                }
                
                // Altrimenti se variabile i e maggiore o uguale a zero
                else if (i >= 1)
                {
                    // Avvisa utente quante righe sono state trovate
                    Console.WriteLine(" Ricerca eseguita , trovato {0} cliente ", i.ToString());
                }

                // Altrimenti
                else
                {
                    // Avvisa utente quante righe sono state trovate
                    Console.WriteLine(" Ricerca eseguita , nessun cliente trovato");
                }

                // Visualizza messaggio a utente
                Console.WriteLine(" Premere un tasto per uscire ");
                // Aspetta un tasto qualsiasi da tastiera
                Console.ReadLine();
        }
    }
 }