|
So'rovlardagi o'zgaruvchilar va "Let" operator
|
bet | 5/5 | Sana | 08.09.2024 | Hajmi | 22,68 Kb. | | #270591 |
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.
|
| |