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

عملگرهای تبدیل در 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<double>();

            Console.WriteLine("Numbers stored as doubles:\n——————————–");

            foreach (var number in doubles)

            {

                Console.WriteLine(number);

            }

        }

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

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


تاریخ انتشار :۴ فروردین ۱۳۹۵



دیدگاه ها :