Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Visual Studio innehåller flera refaktoriseringar för konvertering mellan loopar och LINQ-uttryck. Du kan komma åt dessa refaktoriseringar via snabbåtgärder och refaktoriseringar (Ctrl+.).
Konvertera en for-loop till en foreach-instruktion
Applies to: C#, Visual Basic
Den här refaktoreringen konverterar en for-loop till en foreach-instruktion . Det är användbart när du inte behöver loopvariabeln som ett index och vill förenkla koden.
Anmärkning
Refaktorindelningen Konvertera till förgrening av snabbåtgärd är endast tillgänglig för loopar som innehåller alla tre delarna: en initierare, ett villkor och en iterator.
Placera din caret i nyckelordet
for.Tryck på Ctrl+. Eller klicka på ikonen
i kodfilens marginal.
Välj Konvertera till "foreach". Eller välj Förhandsgranska ändringar för att öppna dialogrutan Förhandsgranskningsändringar och välj sedan Använd.
Konvertera en foreach-instruktion till en for-loop
Applies to: C#, Visual Basic
Den här refaktoreringen konverterar en foreach-instruktion till en for-loop . Det är användbart när du behöver använda loopvariabeln för mer än att bara komma åt objekt, eller när du itererar genom en flerdimensionell matris.
Placera din caret i nyckelordet
foreachellerFor Each.Tryck på Ctrl+. Eller klicka på ikonen
i kodfilens marginal.
Välj Konvertera till för. Eller välj Förhandsgranska ändringar för att öppna dialogrutan Förhandsgranskningsändringar och välj sedan Använd.
Eftersom refaktoreringen introducerar en ny iterationsvariabel visas rutan Byt namn i det övre högra hörnet i redigeraren. Om du vill välja ett annat namn för variabeln skriver du in den och trycker sedan på Retur eller väljer Använd i rutan Byt namn . Om du inte vill välja ett nytt namn trycker du på Esc eller väljer Använd för att stänga rutan Byt namn .
Anmärkning
För C#använder koden som genereras av dessa refaktoriseringar antingen en explicit typ eller var för typen av objekt i samlingen. Typen i den genererade koden, explicit eller implicit, beror på de kodformatinställningar som finns i omfånget. De här inställningarna för kodformat konfigureras på datornivå under Verktyg>Alternativ>Textredigerare>C#>Code Style>General'var>'-inställningar, eller på lösningsnivå i en EditorConfig-fil. Om du ändrar en kodstilinställning i Alternativ öppnar du kodfilen igen för att ändringarna ska börja gälla.
Konvertera en foreach-loop till LINQ
Gäller för: C#
Den här refaktoreringen konverterar en foreach-loop som använder en IEnumerable till en LINQ-fråga eller ett LINQ-anropsformulär (även kallat linq-metod).
Anmärkning
LINQ-syntaxen är vanligtvis mindre effektiv än en foreach-loop. Det är bra att vara medveten om eventuella prestandaavvägningar som kan uppstå när du använder LINQ för att förbättra kodens läsbarhet.
Placera markören i nyckelordet
foreach.
Tryck på Ctrl+för att utlösa menyn Snabbåtgärder och Omstrukturera.
Välj Konvertera till LINQ eller Konvertera till Linq (anropsformulär).
Exempelkod
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;
}
}
}
Konvertera LINQ till foreach-instruktion
Applies to: C#, Visual Basic
Den här refaktoreringen konverterar LINQ-frågesyntax till en foreach-instruktion .
Välj hela LINQ-frågan från och med
from.Anmärkning
Den här refaktorn kan bara användas för att konvertera LINQ-frågor uttryckta med frågesyntax och inte metodsyntax.
Tryck på Ctrl+. Eller klicka på ikonen för
i kodfilens marginal.
Välj Konvertera till "foreach". Eller välj Förhandsgranska ändringar för att öppna dialogrutan Förhandsgranskningsändringar och välj sedan Använd.
Anmärkning
För C#använder koden som genereras av dessa refaktoriseringar antingen en explicit typ eller var för iterationsvariabeln för loopen foreach . Typen i den genererade koden, explicit eller implicit, beror på de kodformatinställningar som finns i omfånget. De här inställningarna för kodformat konfigureras på datornivå under Verktyg>Alternativ>Textredigerare>C#>Code Style>General'var>'-inställningar, eller på lösningsnivå i en EditorConfig-fil. Om du ändrar en kodstilinställning i Alternativ öppnar du kodfilen igen för att ändringarna ska börja gälla.
Förenkla LINQ-uttryck
Gäller för: C#
Den här refaktoreringen förenklar instanser av SomeEnumerableType.Where(<LambdaExpression>).Single() till SomeEnumerable.Single(<LambdaExpression>) för Enumerable.Single() samt följande uppräkningsbara metoder: SingleOrDefault(), Last(), LastOrDefault(), Any(), Count(), First()och FirstOrDefault().
Om du tar bort det onödiga anropet till enumerable för metoden förbättras läsbarheten .Where() och i vissa fall prestanda.
Placera markören i instansen
SomeEnumerableType.Where(<LambdaExpression>).Single()i Visual Studio.Tryck på Ctrl+för att utlösa menyn Snabbåtgärder och Omstrukturera.
Välj Förenkla LINQ-uttryck.