عملگرهای تبدیل در Linq


در مقالات قبل ، عملگرهای مجموعه ای (Set) و مرتب سازی (Ordering) را بررسی کردیم . در این بخش می خواهیم عملگرهای تبدیل مانند ToArray و ToDictionary را مورد بررسی و تحلیل قرار دهیم .

دستور ToArray :

برای تبدیل به آرایه بکار میرود . به مثال زیر توجه کنید :

                              
public static void ToArray()
{
    double[] doubles = { 1.7, 2.3, 1.9, 4.1, 2.9 };
    var sortedDoubles =
                        from number in doubles
                        orderby number descending
                        select number;
    var doublesArray = sortedDoubles.ToArray();
    Console.WriteLine("Every other double from highest to lowest:\n————————");
    for (int index = 0; index < doublesArray.Length; index += 2)
    {
        Console.WriteLine(doublesArray[index]);
    }
}

دستور ToList :

برای تبدیل به لیست Generic از نوع موردنظر بکار میرود . به مثال زیر دقت کنید :

                              
public static void ToList()
{
    string[] words = { "cherry", "apple", "blueberry" };
    var sortedWords =
                        from word in words
                        orderby word
                        select word;
 
    var wordList = sortedWords.ToList();
    Console.WriteLine("The sorted word list:\n—————————");
    foreach (var word in wordList)
    {
        Console.WriteLine(word);
    }
}

عملگر ToDictionary :

برای تبدیل به دیکشنری بکار میرود . همانطور که می دانید نوع Dictionary دارای دو پارامتر کلید-مقدار (key-value) می باشد . نکته ای که در تبدیل به Dictionary وجود دارد اینست که باید کلید دیکشنری را به صراحت ارائه دهیم . برای روشن شدن مطلب به مثال زیر دقت کنید :

                              
public static void ToDictionary()
{
    var scoreRecords = new[]
    {
        new {Name = "Alice", Score = 50},
        new {Name = "Bob"  , Score = 40},
        new {Name = "Cathy", Score = 45}
    };
    var scoreRecordsDict = scoreRecords.ToDictionary(sr => sr.Name);
    Console.WriteLine("Bob's score: {0}", scoreRecordsDict[“Bob”]);
}

توضیح : در مثال فوق ، عبارت Name بعنوان کلید دیکشنری معرفی شده است و Score مقدار آنست.

 

عملگر ofType :

برای اعمال فیلترینگ روی مجموعه هایی که دارای عناصر همگن نیستند (یعنی دارای نوع های مختلف مانند int , string , double , … می باشند) برای مثال داریم :

                              
public static void OfType()
{
    object[] numbers = { null, 1.0, "two", 3, "four", 5, "six", 7.0 };
    var doubles = numbers.OfType();
    Console.WriteLine("Numbers stored as doubles:\n--------------------------------");
    foreach (var number in doubles)
    {
        Console.WriteLine(number);
    }
}

توضیح : در مثال فوق ، می خواهیم عناصری را که از نوع double هستند را به خروجی بدهیم .

مقاله آموزشی عملگرهای تبدیل در اینجا به پایان می رسد . در مقاله بعد ، عملگرهای Element را بررسی خواهیم کرد .



دیدگاه ها :