Delen via


Gegevens filteren in C# met LINQ

Filteren verwijst naar de werking van het beperken van de resultatenset om alleen de elementen te bevatten die voldoen aan een opgegeven voorwaarde. Het wordt ook wel genoemd selecteren van elementen die overeenkomen met de opgegeven voorwaarde.

Belangrijk

In deze voorbeelden wordt een System.Collections.Generic.IEnumerable<T> gegevensbron gebruikt. Gegevensbronnen gebaseerd op System.Linq.IQueryProvider maken gebruik van System.Linq.IQueryable<T> gegevensbronnen en expressiebomen. Expressiestructuren hebben beperkingen voor de toegestane C#-syntaxis. Bovendien kan elke IQueryProvider gegevensbron, zoals EF Core , meer beperkingen opleggen. Raadpleeg de documentatie voor uw gegevensbron.

In de volgende afbeelding ziet u de resultaten van het filteren van een reeks tekens. Het predicaat voor de filterbewerking geeft aan dat het teken 'A' moet zijn.

Diagram met een LINQ-filterbewerking

De standaardqueryoperatormethoden die selectie uitvoeren, worden weergegeven in de volgende tabel:

Methodenaam Beschrijving Syntaxis van C#-queryexpressie Meer informatie
OfType Selecteert waarden, afhankelijk van de mogelijkheid om te casten naar een opgegeven type. Niet van toepassing. Enumerable.OfType

Queryable.OfType
Waar Selecteert waarden die zijn gebaseerd op een predicaatfunctie. where Enumerable.Where

Queryable.Where

In het volgende voorbeeld wordt de where clausule gebruikt om te filteren uit een array die tekenreeksen met een specifieke lengte heeft.

Opmerking

Raadpleeg voor meer informatie over de algemene gegevensbronnen voor deze context het artikel Overzicht van Standard-queryoperators.

string[] words = ["the", "quick", "brown", "fox", "jumps"];

IEnumerable<string> query = from word in words
                            where word.Length == 3
                            select word;

foreach (string str in query)
{
    Console.WriteLine(str);
}

/* This code produces the following output:

    the
    fox
*/

De equivalente query met behulp van de methodesyntaxis wordt weergegeven in de volgende code:

string[] words = ["the", "quick", "brown", "fox", "jumps"];

IEnumerable<string> query =
    words.Where(word => word.Length == 3);

foreach (string str in query)
{
    Console.WriteLine(str);
}

/* This code produces the following output:

    the
    fox
*/

Zie ook