Mavzu: linq texnologiyasi va operatorlari

|
Mavzu: linq texnologiyasi va operatorlari
|
bet | 1/5 | Sana | 08.09.2024 | Hajmi | 22,68 Kb. | | #270591 |
Bog'liq 15-maruza. LINQ texnologiyalari va operatorlari.
MAVZU: LINQ TEXNOLOGIYASI VA OPERATORLARI.
MA’RUZA MASHG’ULOTI REJASI:
1. LINQ haqida tushuncha
2. LINQ kengaytmasi metodlari
3. Filtrlash
Tayanch so`z va iboralar: LINQ texnologiyasi, so’rovlar, SQL, XML, delegatlar, interfeyslar.
LINQ (Language-Integrated Query) - ma'lumot manbasini so'rash uchun oddiy va qulay til. Ma'lumotlar manbai sifatida IEnumerable interfeysini (masalan, standart to'plamlar, massivlar) amalga oshiradigan ob'ekt, DataSet, XML hujjati bo'lishi mumkin. Ammo manba turidan qat'i nazar, LINQ har kimga ma'lumot olish uchun bir xil usulni qo'llashga imkon beradi.
LINQ ning bir nechta lazzatlari mavjud:
LINQ to Objects: massivlar va to'plamlar bilan ishlash uchun ishlatiladi
• LINQ to Entities: ma'lumotlar bazalariga Entity Framework texnologiyasi orqali kirishda foydalaniladi
• LINQ dan Sql: MS SQL Server-da ma'lumotlarga kirish texnologiyasi
• LINQ dan XML: XML fayllari bilan ishlashda ishlatiladi
• LINQ to DataSet: DataSet ob'ekti bilan ishlashda foydalaniladi
• Parallel LINQ (PLINQ): parallel so'rovlarni bajarish uchun ishlatiladi
Ushbu bobda asosan LINQ to Objects ga e'tibor qaratiladi, ammo keyingi maqolalarda LINQ-ning boshqa lazzatlari haqida ham so'z boradi.
LINQ qulayligi nimada? Eng oddiy misolni ko'rib chiqamiz. Massivdan ma'lum bir harf bilan boshlanadi gan qatorlarni tanlaymiz va natijada olingan ro'yxatni saralaymiz:
string[] teams = {"Бавария", "Боруссия", "Реал Мадрид", "Манчестер Сити", "ПСЖ", "Барселона"};
var selectedTeams = newList();
foreach(strings inteams)
{
if(s.ToUpper().StartsWith("Б"))
selectedTeams.Add(s);
}
selectedTeams.Sort();
foreach(strings inselectedTeams)
Console.WriteLine(s);
Xuddi ushbu harakatlarni LINQ yordamida bajaramiz:
string[] teams = {"Бавария", "Боруссия", "Реал Мадрид", "Манчестер Сити", "ПСЖ", "Барселона"};
var selectedTeams = from t inteams ;
where t.ToUpper().StartsWith("Б")
orderby t ;
select t;
foreach(strings inselectedTeams)
Console.WriteLine(s);
LINQ funksiyasidan foydalanish uchun System.LINQ nom maydoni faylga kiritilganligiga ishonch hosil qiling.
Shuning uchun kod kichikroq va sodda. Aslida, butun ifoda bitta satrda yozilishi mumkin edi: var selectedTeams = dan t.ToUpper (). StartsWith ("B") buyrug'i bilan t ni tanlang. Ammo aniqroq mantiqiy parchalanish uchun har bir alohida subekspressiyani alohida qatorga qo'ydim.
LINQ so'rovining eng sodda ta'rifi quyidagicha:
from o’zgaruvchi in ob’yektlar to’plami
select o’zgaruvchi;
Xo'sh, bu LINQ so'rovi nima qiladi? Jamoalar ichidagi t bandi jamoalar qatoridagi barcha elementlarni takrorlaydi va har bir elementni t deb belgilaydi. T o'zgaruvchisidan foydalanib, unga turli xil operatsiyalarni bajarishimiz mumkin.
T o'zgaruvchining turini aniqlamagan bo'lsak-da, LINQ iboralari kuchli tarzda teriladi. Ya'ni, ramka avtomatik ravishda jamoalar to'plami string ob'ektlaridan iborat ekanligini tan oladi, shuning uchun t satr sifatida ko'rib chiqiladi.
Keyinchalik, qaerda joylashgan banddan foydalanib, ob'ektlar filtrlanadi va agar ob'ekt mezonga javob bersa (bu holda boshlang'ich harf "B" bo'lishi kerak), unda bu ob'ekt uzatiladi.
Orderby operatori o'sish tartibida buyurtma beradi, ya'ni tanlangan moslamalarni saralaydi.
Select operatori tanlangan qiymatlarni natijalar to'plamiga o'tkazadi, LINQ ifodasi qaytaradi.
Bunday holda, LINQ ifodasining natijasi IEnumerable bo'ladi. Ko'pincha, natijada tanlov var kalit so'zi yordamida aniqlanadi, keyin kompilyator o'zi kompilyatsiya vaqtida turini chiqaradi.
Bunday so'rovlarning afzalligi shundaki, ular SQL tilidagi so'rovlarga intuitiv ravishda o'xshashdir, garchi ularning ba'zi bir farqlari bor.
|
| |