|
Filtrlash
To'plamdan shartli ravishda elementlarni tanlash uchun Where
|
bet | 3/5 | Sana | 08.09.2024 | Hajmi | 22,68 Kb. | | #270591 |
Bog'liq 15-maruza. LINQ texnologiyalari va operatorlari.Filtrlash
To'plamdan shartli ravishda elementlarni tanlash uchun Where metodidan foydalaning. Masalan, 10 dan katta bo'lgan barcha juft elementlarni tanlaylik.
LINQ operatorlari bilan filtrlash:
1
2
3
4
5
6
7
|
int[] numbers = { 1, 2, 3, 4, 10, 34, 55, 66, 77, 88 };
IEnumerable evens = from i innumbers
where i%2==0 && i>10
select i;
foreach(inti inevens)
Console.WriteLine(i);
|
Bu yerda: dan i raqamlar konstruktsiyasi ishlatiladi
Kengaytma metodi yordamida bir xil so'rov:
1
2
|
int[] numbers = { 1, 2, 3, 4, 10, 34, 55, 66, 77, 88 };
IEnumerable evens = numbers.Where(i => i % 2 == 0 && i > 10);
|
Agar ma'lum bir element uchun Where usulidagi ifoda to'g'ri bo'lsa (bu holda, i% 2 == 0 && i> 10 ifodasi), unda bu element natijada tanlanishga kiritiladi.
Murakkab ob'ektlarni tanlash
Aytaylik, bizda foydalanuvchi sinfi bor:
1
2
3
4
5
6
7
8
9
10
|
classUser
{
publicstringName { get;set; }
publicintAge { get; set; }
publicList Languages { get; set; }
publicUser()
{
Languages = newList();
}
}
|
Keling, foydalanuvchilar to'plamini tuzamiz va ularning orasidan 25 yoshdan katta bo'lganlarni tanlaymiz:
List users = newList
{
newUser {Name="Тоm", Age=23, Languages = newList {"английский", "немецкий"}},
newUser {Name="Боb", Age=27, Languages = newList {"английский", "французский"}},
newUser {Name="John ", Age=29, Languages = newList {"английский", "испанский"}},
newUser {Name="Elis", Age=24, Languages = newList {"испанский", "немецкий"}}
};
var selectedUsers = from user inusers
where user.Age> 25
select user;
foreach(User user inselectedUsers)
Console.WriteLine($"{user.Name} - {user.Age}");
|
Console oynadagi natija:
Bob-27
John-29
Where kengaytmasi metodi yordamida shunga o'xshash so'rov:
1
|
var selectedUsers = users.Where(u=> u.Age > 25);
|
|
| |