• Ozgaruvchanlarni aniqlash
  • So'rovlardagi o'zgaruvchilar va "Let" operator




    Download 22,68 Kb.
    bet5/5
    Sana08.09.2024
    Hajmi22,68 Kb.
    #270591
    1   2   3   4   5
    Bog'liq
    15-maruza. LINQ texnologiyalari va operatorlari.

    So'rovlardagi o'zgaruvchilar va "Let" operator
    Ba'zida LINQ so'rovlarida qo'shimcha oraliq hisob-kitoblarni bajarish kerak bo'ladi. Ushbu maqsadlar uchun biz o'zgarmaydiganlarimizni so'rovlarda let operatori yordamida sozlashimiz mumkin:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

    List users = newList()
    {
    newUser { Name = "Sam", Age = 43 },
    newUser { Name = "Tom", Age = 33 }
    };
    var people = from u inusers
    let name = "Mr. "+ u.Name
    select new
    {
    Name = name,
    Age = u.Age
    };

    Bu holda o'zgaruvchining nomi yaratiladi, uning qiymati "Mr." + u.Name.
    O'zgaruvchanlarni aniqlash qobiliyati, ehtimol LINQ operatorlarining kengaytma metodlariga nisbatan asosiy afzalliklaridan biridir.
    Ko'p manbalardan namuna olish
    LINQ-da siz ob'ektlarni nafaqat bitta, balki ko'proq manbalardan tanlashingiz mumkin:
    Masalan, mashg'ulotlarga boring:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    classPhone
    {
    publicstringName { get; set; }
    publicstringCompany { get; set; }
    }
    classUser
    {
    publicstringName { get; set; }
    publicintAge { get; set; }
    }

    Keling, ikkita turli xil ma'lumot manbalarini yarataylik va tanlov qilaylik:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17

    List users = newList()
    {
    newUser { Name = "Sam", Age = 43 },
    newUser { Name = "Tom", Age = 33 }
    };
    List
    phones = newList
    ()
    {
    newPhone {Name="Lumia 630", Company="Microsoft"},
    newPhone {Name="iPhone 6", Company="Apple"},
    };
    var people = from user inusers
    from phone inphones
    select new{ Name = user.Name, Phone = phone.Name };
    foreach(var p inpeople)
    Console.WriteLine($"{p.Name} - {p.Phone}");

    Ekrandagi natija:
    Sam - Lumia 630
    Sam - iPhone 6
    Tom - Lumia 630
    Tom - iPhone 6
    Shunday qilib, ikkita manbadan namuna olganda, birinchi manbadagi har bir element ikkinchi manbadagi har bir narsaga mos keladi. Ya'ni, siz 4 juftni olasiz.
    Download 22,68 Kb.
    1   2   3   4   5




    Download 22,68 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    So'rovlardagi o'zgaruvchilar va "Let" operator

    Download 22,68 Kb.