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 elementen geselecteerd die overeenkomen met de opgegeven voorwaarde.

Belangrijk

In deze voorbeelden wordt een System.Collections.Generic.IEnumerable<T> gegevensbron gebruikt. Gegevensbronnen op System.Linq.IQueryProvider basis van het gebruik van System.Linq.IQueryable<T> gegevensbronnen en expressiestructuren. 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 component gebruikt om te filteren op een matrix die tekenreeksen met een specifieke lengte hebben.

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