LINQ orqali ArrayList ga nisbatan so’rovlarni amalga oshirish

|
LINQ orqali ArrayList ga nisbatan so’rovlarni amalga oshirish
|
bet | 10/11 | Sana | 02.02.2024 | Hajmi | 145,5 Kb. | | #150530 |
Bog'liq Linq texnologiyasi tavsifi-fayllar.orgLINQ orqali ArrayList ga nisbatan so’rovlarni amalga oshirish
ArrayList kabi umumiy bo'lmagan IEnumerable to'plamlarini so'rash uchun LINQ dan foydalanganda, to'plamdagi ob'ektlarning o'ziga xos turini aks ettirish uchun diapazon o'zgaruvchisi turini aniq e'lon qilishingiz kerak. Misol uchun, agar sizda ArrayList of Student ob'ektlari mavjud bo'lsa, from bandi quyidagicha ko'rinishi kerak:
var query = from Student s in arrList
//...
Diapazon o'zgaruvchisining tipini ko'rsatib, ArrayListdagi har bir elementni student ga yuborasiz.
So'rov ifodasida aniq kiritilgan diapazon o'zgaruvchisidan foydalanish Cast usulini chaqirishni anglatadi. Belgilangan translatsiya bajarilmasa, Cast istisno qiladi. Cast va OfType - bu umumiy bo'lmagan IEnumerable turlarida ishlaydigan ikkita standart so'rov operatori metodlaridir.
Quyidagi misol ArrayList orqali oddiy so'rovni ko'rsatadi. E'tibor bersak, ushbu misolda kod Join metodini chaqirganda ob'ektni ishga tushirish vositalaridan foydalanadi, ammo bu shart emas:
using System;
using System.Collections;
using System.Linq;
namespace NonGenericLINQ
{ public class Student
{ public string FirstName { get; set; }
public string LastName { get; set; }
public int[] Scores { get; set; } }
class Program
{
static void Main(string[] args)
{
ArrayList arrList = new ArrayList();
arrList.Add(
new Student
{
FirstName = "Svetlana", LastName = "Omelchenko", Scores = new int[] { 98, 92, 81, 60 }
});
arrList.Add(
new Student
{ FirstName = "Claire", LastName = "O’Donnell", Scores = new int[] { 75, 84, 91, 39 }
});
arrList.Add(
new Student
{ FirstName = "Sven", LastName = "Mortensen", Scores = new int[] { 88, 94, 65, 91 }
});
arrList.Add(
new Student
{ FirstName = "Cesar", LastName = "Garcia", Scores = new int[] { 97, 89, 85, 82 }
});
var query = from Student student in arrList
where student.Scores[0] > 95
select student;
foreach (Student s in query)
Console.WriteLine(s.LastName + ": " + s.Scores[0]);
// Keep the console window open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey(); } } }
/* Output:
Omelchenko: 98
Garcia: 97
*/
XOTIMA
Ushbu Bitiruv malakaviy ishini yozish mobaynida shu paytgacha egallangan bilimlarni ishga solgan holatda LINQ texnologiyalarining amaliy masalalarga tadbiq etilishi ni o’rganib chiqdim va ushbu jarayonda bu texnologiya va so’rovlarni amalga joriy etishning bir qator afzalliklari borligiga amin bo’ldim.C# dasturlash tilidagi so’rovlar ketma ketligini ma’lumotlar bazasi bilan bog’lash amallarini ko’rib chiqish jarayonida yanada ko’proq tajriba orttirdim.Jarayon mobaynida foydalanilgan adabiyotlar bilan ishlash ham menda katta taassurot qoldirdi.Bitiruv malakaviy ish davomida ilmiy rahbarim bilan bir qator murakkab jihatlarga alohida urg’u berib o’tishga harakat qildik.
Bajarilgan ishlarning tushunarliligi va samaradorligini oshirish maqsadida ko’proq C# kodlar bilan yozilgan dasturlarni namunaviy misollar sifatida kiritdik.LINQ texnologiyasidan foydalanib ma’lumotlarga o’zgartirishlar kiritish ,so’rovlarni joriy etish jarayonidagi asosiy amallar,C# dasturlash tilidagi LINQ texnologiyasini qo’llab quvvatlovchi alohida jihatlarga alohida yondashildi.Dastlab birinchi bobda C# dagi LINQ texnologiyalarining umumiy tavsifi berildi.Umumiy tiplar haqida so’z yuritildi.Bobning tarkibiy qismlari bo’lmish bo’limlar ko’lamida har bir amalning alohida jihatlariga e’tibor qaratildi.Nazariy bilimlarni amaliyotda qo’llash bo’yicha uslubiy va amaliy ko’nikmalarga ega bo’lganligim eng katta yutuqlardan biri bo’ldi.
BMI uchu kerakli nazariy bilimlar,amaliy ko’rsatmalar tahlil mqilindi.II bob ni bajarish uchun poydevor tayyorlandi.Ikkinchi bob 3 ta bo’limdan iborat bo’lib birinchi bo’limda ma’lumotlar ustida ishlash, ikkinchi bo’limda esa so’rovlardagi tipga oid bog’lanishlar o’rganib chiqildi.Xulosaga yaqin qismda esa, uchinchi bo’limda qulayliklar va LINQ ga xos afzalliklar haqida so’z yuritildi.Menga topshirilgan Bitiruv malakaviy amaliyotini yakunlar ekanman, ushbu berilgan mavzuga doir muhim jihatlarni ta’lim dasturidagi mos keluvchi mavzularga tadbiq etish masalasining muhimlik darajasini tushunib yetdim.
|
| |