Sdílet prostřednictvím


Refaktoringy smyčky a LINQ

Visual Studio poskytuje několik refaktoringů pro převod mezi smyčkami a výrazy LINQ. K těmto refaktoringům se dostanete prostřednictvím nabídky Rychlé akce a refaktoring (Ctrl+.).

Převod smyčky for na příkaz foreach

Applies to: C# Visual Basic

Tento refaktoring převede smyčku for na příkaz foreach . Je užitečné, když jako index nepotřebujete proměnnou smyčky a chcete kód zjednodušit.

Poznámka:

Refaktoring Akce převodu na foreach je k dispozici pouze pro smyčky, které obsahují všechny tři části: inicializátor, podmínku a iterátor.

  1. Umístěte stříšku do klíčového for slova.

  2. Stiskněte ctrl+nebo klikněte na ikonu ikony šroubováku šroubovák na okraji souboru kódu.

    Snímek obrazovky s nabídkou Převést na foreach

  3. Vyberte Převést na foreach. Nebo výběrem možnosti Náhled změn otevřete dialogové okno Náhled změn a pak vyberte Použít.

Převod příkazu foreach na smyčku for

Applies to: C# Visual Basic

Tento refaktoring převede příkaz foreach na smyčku for . Je užitečné, když potřebujete proměnnou smyčky použít pro více než jen přístup k položkám nebo při iterování prostřednictvím multidimenzionálního pole.

  1. Umístěte stříšku do klíčového foreach slova nebo For Each do něj.

  2. Stiskněte ctrl+nebo klikněte na ikonu ikony šroubováku šroubovák na okraji souboru kódu.

    Snímek obrazovky s možností Převést na nabídku

  3. Vyberte Převést na for. Nebo výběrem možnosti Náhled změn otevřete dialogové okno Náhled změn a pak vyberte Použít.

  4. Vzhledem k tomu, že refaktoring zavádí novou proměnnou počtu iterací, zobrazí se pole Přejmenovat v pravém horním rohu editoru. Pokud chcete pro proměnnou zvolit jiný název, zadejte ho a stiskněte Enter nebo vyberte Použít v poli Přejmenovat . Pokud nechcete zvolit nový název, stiskněte klávesu Esc nebo vyberte Použít a zavřete pole Přejmenovat .

Poznámka:

Pro jazyk C# kód vygenerovaný těmito refaktoringy používá explicitní typ nebo var pro typ položek v kolekci. Typ vygenerovaného kódu, explicitní nebo implicitní, závisí na nastavení stylu kódu, která jsou v oboru. Tato konkrétní nastavení stylu kódu jsou nakonfigurována na úrovni počítače v části Nástroje>Možnosti>textového editoru>C#>Styl> kóduObecné'var>' předvolby nebo na úrovni řešení v souboru EditorConfig. Pokud změníte nastavení stylu kódu v možnostech, znovu otevřete soubor kódu, aby se změny projevily.

Převod smyčky foreach na LINQ

Platí pro: C#

Tento refaktoring převede smyčku foreach , která používá IEnumerable na dotaz LINQ nebo formulář volání LINQ (označovaný také jako metoda LINQ).

Poznámka:

Syntaxe LINQ je obvykle méně efektivní než smyčka foreach. Je dobré vědět o jakémkoli kompromisu z hlediska výkonu, ke kterému může dojít, když použijete LINQ ke zlepšení čitelnosti kódu.

  1. Umístěte kurzor do klíčového foreach slova.

    Snímek obrazovky foreach s ukázkou IEnumerable

  2. Stisknutím klávesy Ctrl+. aktivujte nabídku Rychlé akce a refaktoringy.

    Snímek obrazovky s ukázkou nabídky Převést na LINQ

  3. Vyberte Převést na LINQ nebo Převést na Linq (formulář volání).

    Snímek obrazovky s ukázkou výsledku dotazu LINQ

    Snímek obrazovky s ukázkou výsledku formuláře volání LINQ

Ukázkový kód

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;
        }
    }
}

Převod příkazu LINQ na foreach

Applies to: C# Visual Basic

Tento refaktoring převede syntaxi dotazu LINQ na příkaz foreach .

  1. Vyberte celý dotaz LINQ začínající na from.

    Poznámka:

    Tento refaktoring lze použít pouze k převodu dotazů LINQ vyjádřených syntaxí dotazu, nikoli syntaxí metody.

  2. Stiskněte ctrl+nebo klikněte na ikonu ikony šroubováku šroubováku na okraji souboru kódu.

    Snímek obrazovky s nabídkou Rychlých akcí převést LINQ na foreach

  3. Vyberte Převést na foreach. Nebo výběrem možnosti Náhled změn otevřete dialogové okno Náhled změn a pak vyberte Použít.

Poznámka:

V jazyce C# kód vygenerovaný těmito refaktoringy používá explicitní typ nebo var pro proměnnou iterace smyčky foreach . Typ vygenerovaného kódu, explicitní nebo implicitní, závisí na nastavení stylu kódu, která jsou v oboru. Tato konkrétní nastavení stylu kódu jsou nakonfigurována na úrovni počítače v části Nástroje>Možnosti>textového editoru>C#>Styl> kóduObecné'var>' předvolby nebo na úrovni řešení v souboru EditorConfig. Pokud změníte nastavení stylu kódu v možnostech, znovu otevřete soubor kódu, aby se změny projevily.

Zjednodušení výrazu LINQ

Platí pro: C#

Tento refaktoring zjednodušuje výskyty SomeEnumerableType.Where(<LambdaExpression>).Single()SomeEnumerable.Single(<LambdaExpression>) pro Enumerable.Single() a také následující výčtové metody: SingleOrDefault(), Last(), LastOrDefault(), Any(), , Count()First()a FirstOrDefault().

Odebrání nepotřebného volání výčtu pro metodu .Where() zlepšuje čitelnost a v některých případech výkon.

  1. Umístěte kurzor do instance SomeEnumerableType.Where(<LambdaExpression>).Single() v Visual Studio.

  2. Stisknutím klávesy Ctrl+. aktivujte nabídku Rychlé akce a refaktoringy.

  3. Vyberte Zjednodušit výraz LINQ.

    Snímek obrazovky se zjednodušením výrazu LINQ