Share via


Converteer een foreach loop naar LINQ

Deze refactoring is van toepassing op:

  • C#

Wat: Hiermee kunt u eenvoudig uw foreach-lus die gebruikmaakt van een IEnumerable converteren naar een LINQ-query of een LINQ-aanroepformulier (ook wel een LINQ-methode genoemd).

Wanneer: U hebt een foreach-lus die gebruikmaakt van een IEnumerable, en u wilt dat die lus wordt gelezen als een LINQ-query.

Waarom: U gebruikt liever de LINQ-syntaxis in plaats van een foreach-lus. LINQ maakt van een query een eersteklas taalconstructie in C#. LINQ kan de hoeveelheid code in een bestand verminderen, de code leesbaarder maken en ervoor zorgen dat verschillende gegevensbronnen vergelijkbare query-expressiepatronen hebben.

Opmerking

De LINQ-syntaxis is doorgaans minder efficiƫnt dan een foreach-lus. Het is goed om op de hoogte te zijn van eventuele prestatienadelen die kunnen optreden wanneer u LINQ gebruikt om de leesbaarheid van uw code te verbeteren.

Converteer een foreach loop naar LINQ refactoring

  1. Plaats de cursor in het foreach trefwoord.

    Foreach met behulp van IEnumerable sample

  2. Druk op Ctrl+. om het menu Snelle acties en Refactorings te activeren.

    Converteren naar LINQ menuvoorbeeld

  3. Selecteer Converteren naar LINQ of Converteren naar Linq (belformulier).

    Voorbeeld van LINQ-queryresultaten

    Voorbeeld van het resultaat van het LINQ-oproepformulier

Voorbeeldcode

using System.Collections.Generic;

public class Class1
{
    public void MyMethod()
    {
        var greetings = new List<string>()
            { "hi", "yo", "hello", "howdy" };

        IEnumerable<string> enumerable()
        {
            foreach (var greet in greetings)
            {
                if (greet.Length < 3)
                {
                    yield return greet;
                }
            }

            yield break;
        }
    }
}

Zie ook