Döngü ve LINQ yeniden düzenlemeleri

Visual Studio, döngüler ve LINQ ifadeleri arasında dönüştürme için çeşitli yeniden düzenleme sağlar. Bu yeniden düzenlemelere Hızlı Eylemler ve Yeniden Düzenlemeler menüsü (Ctrl+.) aracılığıyla erişebilirsiniz.

For döngüsünü foreach deyimine dönüştürme

Applies to: C#, Visual Basic

Bu yeniden düzenleme, for döngüsünüforeach deyimine dönüştürür. Döngü değişkenine dizin olarak ihtiyacınız olmadığında ve kodunuzu basitleştirmek istediğinizde kullanışlıdır.

Uyarı

Foreach Hızlı Eyleme Dönüştür yeniden düzenlemesi yalnızca üç bölümü de içeren döngüler için kullanılabilir: başlatıcı, koşul ve yineleyici.

  1. Şapka işaretinizi anahtar sözcüğüne for yerleştirin.

  2. Ctrl tuşuna+basın veya kod dosyasının kenar boşluğundaki tornavida Tornavida simgesi simgesine tıklayın.

    Foreach menüsüne dönüştür'ün ekran görüntüsü.

  3. 'foreach' öğesine dönüştür'ü seçin. Alternatif olarak, Değişiklikleri önizle iletişim kutusunu açmak için Değişiklikleri önizle'yi ve ardından Uygula'yı seçin.

foreach deyimini for döngüsüne dönüştürme

Applies to: C#, Visual Basic

Bu yeniden düzenleme, foreach deyimini for döngüsüne dönüştürür. Döngü değişkenini yalnızca öğelere erişmekten daha fazlası için kullanmanız gerektiğinde veya çok boyutlu bir dizide yineleme yaparken kullanışlıdır.

  1. Şapka işaretinizi veya For Each anahtar sözcüğüne foreach yerleştirin.

  2. Ctrl tuşuna+basın veya kod dosyasının kenar boşluğundaki tornavida Tornavida simgesi simgesine tıklayın.

    Menü için Dönüştür'ün ekran görüntüsü.

  3. 'for' öğesine dönüştür'ü seçin. Alternatif olarak, Değişiklikleri önizle iletişim kutusunu açmak için Değişiklikleri önizle'yi ve ardından Uygula'yı seçin.

  4. Yeniden düzenleme yeni bir yineleme sayısı değişkeni sağladığından, düzenleyicinin sağ üst köşesinde Yeniden Adlandır kutusu görüntülenir. Değişken için farklı bir ad seçmek istiyorsanız, değişkeni yazın ve Enter tuşuna basın veya Yeniden Adlandır kutusunda Uygula'yı seçin. Yeni bir ad seçmek istemiyorsanız Esc tuşuna basın veya Uygula'yı seçerek Yeniden Adlandır kutusunu kapatın.

Uyarı

C# için, bu yeniden düzenlemelerle oluşturulan kod, koleksiyondaki öğelerin türü için açık bir tür veya var kullanır. Oluşturulan koddaki açık veya örtük tür, kapsamdaki kod stili ayarlarına bağlıdır. Bu özel kod stili ayarları , Araçlar>Seçenekler>Metin Düzenleyicisi>C#>Kod Stili>Genel'var>' tercihleri altında veya bir EditorConfig dosyasındaki çözüm düzeyinde makine düzeyinde yapılandırılır. Seçenekler'de bir kod stili ayarını değiştirirseniz, değişikliklerin etkili olması için kod dosyasını yeniden açın.

Foreach döngüsünü LINQ'e dönüştürme

Şunlar için geçerlidir: C#

Bu yeniden düzenleme, IEnumerable kullanan bir foreach döngüsünü LINQ sorgusuna veya LINQ çağrı formuna (LINQ yöntemi olarak da bilinir) dönüştürür.

Uyarı

LINQ söz dizimi genellikle foreach döngüsünden daha az verimlidir. Kodunuzun okunabilirliğini geliştirmek için LINQ kullandığınızda oluşabilecek performans dengelerini bilmeniz iyi olur.

  1. İmlecinizi anahtar sözcüğün üzerine foreach getirin.

    IEnumerable örneğini kullanan Foreach'in ekran görüntüsü.

  2. Hızlı Eylemler ve Yeniden Düzenlemeler menüsünü tetiklemek için Ctrl+ tuşuna basın.

    LINQ'e Dönüştür menü örneğinin ekran görüntüsü.

  3. LINQ'e Dönüştür veya Linq'e Dönüştür (çağrı formu) seçeneğini belirleyin.

    LINQ sorgu sonuç örneğinin ekran görüntüsü.

    LINQ çağrı formu sonuç örneğinin ekran görüntüsü.

Örnek kodu

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

LINQ'i foreach deyimine dönüştürme

Applies to: C#, Visual Basic

Bu yeniden düzenleme LINQ sorgu söz dizimleriniforeach deyimine dönüştürür.

  1. ile frombaşlayan LINQ sorgusunun tamamını seçin.

    Uyarı

    Bu yeniden düzenleme yalnızca sorgu söz dizimi ile ifade edilen LINQ sorgularını dönüştürmek için kullanılabilir, yöntem söz dizimi ile değil.

  2. Ctrl tuşuna+ basın veya kod dosyasının kenar boşluğundaki tornavida tornavida simgesine tıklayın.

    LINQ to foreach hızlı işlemler menüsünün ekran görüntüsü.

  3. 'foreach' öğesine dönüştür'ü seçin. Alternatif olarak, Değişiklikleri önizle iletişim kutusunu açmak için Değişiklikleri önizle'yi ve ardından Uygula'yı seçin.

Uyarı

C# için, bu yeniden düzenlemelerle oluşturulan kod, döngünün yineleme değişkeni foreach için açık bir tür veya var kullanır. Oluşturulan koddaki açık veya örtük tür, kapsamdaki kod stili ayarlarına bağlıdır. Bu özel kod stili ayarları , Araçlar>Seçenekler>Metin Düzenleyicisi>C#>Kod Stili>Genel'var>' tercihleri altında veya bir EditorConfig dosyasındaki çözüm düzeyinde makine düzeyinde yapılandırılır. Seçenekler'de bir kod stili ayarını değiştirirseniz, değişikliklerin etkili olması için kod dosyasını yeniden açın.

LINQ ifadesini basitleştirme

Şunlar için geçerlidir: C#

Bu yeniden düzenleme, için örneklerinin SomeEnumerableType.Where(<LambdaExpression>).Single()SomeEnumerable.Single(<LambdaExpression>) yanı sıra aşağıdaki Numaralandırılabilir yöntemleri basitleştirir: SingleOrDefault(), Last(), LastOrDefault(), Any(), , Count(), First()ve FirstOrDefault().Enumerable.Single()

Yöntemi için Numaralandırılabilir'e gereksiz çağrının .Where() kaldırılması okunabilirliği ve bazı durumlarda performansı artırır.

  1. İmlecinizi SomeEnumerableType.Where(<LambdaExpression>).Single() örneğinin içine Visual Studio yerleştirin.

  2. Hızlı Eylemler ve Yeniden Düzenlemeler menüsünü tetiklemek için Ctrl+ tuşuna basın.

  3. LINQ ifadesini basitleştir'i seçin.

    LINQ ifadesini basitleştirme işleminin ekran görüntüsü.