Aracılığıyla paylaş


= > İşleç (C# Reference)

=> Lambda işleç simgesi olarak adlandırılır.İçinde kullanılan lambda ifadeleri sağ tarafındaki lambda gövdesinden sol tarafındaki giriş değişkenleri ayırmak için.Lambda ifadeleri satır içi ifadeleri benzer ancak daha esnek anonim yöntemler şunlardır; yöntem sözdiziminde ifade LINQ sorgularını, yaygın olarak kullanılır.Daha fazla bilgi için bkz. Lambda ifadeleri (C# Programlama Kılavuzu).

Aşağıdaki örnek bulmak ve en kısa uzunluk dize dizisi içinde görüntülemek için iki yol gösterir.Örneğin ilk bölümü lambda ifadesi uygular (w => w.Length) her öğesine words dizi ve kullanımları Min en küçük uzunluk bulunmasını sağlayan yöntem.Karşılaştırma için aynı şeyi yapmak için sorgu sözdizimini kullanan uzun bir çözüm örneğin ikinci bölümü gösterir.

string[] words = { "cherry", "apple", "blueberry" };

// Use method syntax to apply a lambda expression to each element
// of the words array. 
int shortestWordLength = words.Min(w => w.Length);
Console.WriteLine(shortestWordLength);

// Compare the following code that uses query syntax.
// Get the lengths of each word in the words array.
var query = from w in words
            select w.Length;
// Apply the Min method to execute the query and get the shortest length.
int shortestWordLength2 = query.Min();
Console.WriteLine(shortestWordLength2);

// Output: 
// 5
// 5

Notlar

=> İşleç atama işleci olarak aynı önceliğe sahiptir (=) ve sağa ilişkilendirilebilir.

Giriş değişkeni türünü açıkça belirtin veya onu gerçekleştirip derleyici sağlar; Her iki durumda da değişkenin derleme zamanında kesinlikle yazdınız.Bir türü belirttiğinizde, parantez içinde türü adı ve değişken adı aşağıdaki örnekte gösterildiği gibi almanız gerekir.

int shortestWordLength = words.Min((string w) => w.Length);

Örnek

Aşağıdaki örnek için standart sorgu işleci aşırı bir lambda ifadesi yazmak nasıl gösterir Enumerable.Where , iki baðýmsýz deðiþken alýr.Lambda ifadesi birden fazla parametre içerdiğinden, parametreleri parantez içine alınmalıdır.İkinci parametre, index, geçerli öğenin koleksiyondaki dizinini temsil eder.Where , Uzunlukları dizi dizini konumlarını daha az olan tüm dizeler ifade döndürür.

static void Main(string[] args)
{
    string[] digits = { "zero", "one", "two", "three", "four", "five", 
            "six", "seven", "eight", "nine" };

    Console.WriteLine("Example that uses a lambda expression:");
    var shortDigits = digits.Where((digit, index) => digit.Length < index);
    foreach (var sD in shortDigits)
    {
        Console.WriteLine(sD);
    }

    // Compare the following code, which arrives at the same list of short
    // digits but takes more work to get there.
    Console.WriteLine("\nExample that uses a for loop:");
    List<string> shortDigits2 = new List<string>();
    for (var i = 0; i < digits.Length; i++)
    {
        if (digits[i].Length < i)
            shortDigits2.Add(digits[i]);
    }

    foreach (var d in shortDigits2)
    {
        Console.WriteLine(d);
    }
    // Output:
    // Example that uses a lambda expression:
    // five
    // six
    // seven
    // eight
    // nine

    // Example that uses a for loop:
    // five
    // six
    // seven
    // eight
    // nine
}

Ayrıca bkz.

Başvuru

Lambda ifadeleri (C# Programlama Kılavuzu)

Kavramlar

C# Programlama Kılavuzu

Diğer Kaynaklar

C# Başvurusu