LINQ operatori
LINQ so’zining qisqartmasi Language-Integrated Query, ya'ni integratsiyalashgan so'rovlar tili degan ma'noni anglatadi. Ushbu kontsepsiya ma'lumotlar bazasidan ma'lumot olish imkonini beruvchi bir qator vositalarni o'z ichiga oladi. Ma'lumki, ma'lumotlarni olish ko'plab dasturlarning muhim qismidir. Misol uchun, dastur mijozlar ro'yxatidan ma'lumot olishi, mahsulot katalogidagi ma'lumotlarni qidirishi yoki xodim kiritilgan hisobga olish hujjatiga kirishi mumkin. Odatda, bunday ma'lumotlar ilovadan alohida mavjud bo'lgan ma'lumotlar bazasida saqlanadi. Shunday qilib, mahsulot katalogi Relational ma'lumotlar bazasida saqlanishi mumkin. Oldin bunday ma'lumotlar bazasi bilan ishlash uchun tuzilgan so'rovlar (SQL) tilida so'rovlarni shakllantirish kerak edi. Va boshqa ma'lumot manbalariga kirish uchun, masalan, XML formatida alohida yondashuv talab qilindi. Shuning uchun, 3.0 versiyasiga qadar C# da o'xshash so'rovlarni qo'llab-quvvatlash yo'q edi. Biroq, bu holat LINQni qabul qilganidan keyin o'zgardi.
LINQ har qanday LINQ-mos keluvchi ma'lumot manbai uchun so'rovlarni yaratishga imkon beruvchi vositalar hisoblanadi. Shu bilan birga, so'rovlarni shakllantirish uchun ishlatiladigan sintaksis ma'lumot manbai turiga qaramasdan o'zgarishsiz qolmoqda. Bu, xususan, Relational ma'lumotlar bazasiga so'rov yaratish uchun zarur bo'lgan sintaksisning massivda saqlangan ma'lumotlar so'rovining sintaksisidan deyarli farq qilmaydi. Buning uchun endi manbadan ma'lumotlarni olish mexanizmi C# ga nisbatan SQL yoki boshqa tashqi vositalarga murojaat qilishning hojati yo'q. So'rovlarni shakllantirish qobiliyati bundan buyon C# tiliga to'liq integratsiyalangan.
SQL-dan tashqari, LINQ XML fayllari va ma'lumotlar to'plamlari bilan birgalikda ADO.NET Dataset texnologiyalarini ishlatilishi mumkin. Shunday qilib, LINQ vositalari, umuman, ma'lumotlarga bir xil kirishni ta'minlaydi. Va bunday printsipning o'zi juda samarali bo'lsada, LINQning afzalliklari bu bilan
chegaralanmaydi. LINQ ma'lumotlar bazalariga kirishni an'anaviy tashkil qilishdan tashqari, turli xil dasturiy vazifalarni hal qilish uchun boshqacha fikrlashni taklif qiladi. Va nihoyat, LINQ asosida ko'plab yechimlar ishlab chiqilishi mumkin.
C# tilida LINQ aslida tildir. Shuning uchun, linqni ko'rib chiqish mavzusi juda keng va ko'plab vositalar, imkoniyatlar va muqobillarni o'z ichiga oladi. Ushbu mavzuda LINQ vositalarining batafsil tavsifi berilgan bo'lsa-da, bu erda ularning barcha imkoniyatlarini, xususiyatlarini va dasturlarini ko'rib chiqish imkoniyati yo’q. Shu nuqtai nazardan, ushbu bo'lim LINQ ning asosiy elementlariga qaratilgan bo'lib, ulardan foydalanish ko'plab misollarda namoyish etiladi. Va uzoq muddatda LINQ mustaqil ravishda va batafsil o'rganish kerak bo'lgan kichik tizimdir. Linq operatorlari:
So'rov select kalit so'z bilan boshlanishi kerak va from yoki group kalit so'z bilan tugaydi. Select operatori so'rov bo'yicha berilgan qiymat turini belgilaydi va group operatori ma'lumotlarni guruhlar bilan qaytaradi va har bir guruh alohida-alohida o'tkazilishi mumkin. Yuqoridagi misollardan kelib chiqqan holda, operator istalgan elementni so'rov bo'yicha qabul qilish uchun kerak bo'lgan mezonlarni belgilaydi. Boshqa operatorlar so'rovni aniqlashtirishga imkon beradi.
where operator yordamida kerakli qiymatlarni tanlash
Yuqorida aytib o'tilganidek, where operatori so'rov bo'yicha qaytarilgan ma'lumotlarni tanlash uchun xizmat qiladi. Avvalgi misollarda ushbu operator eng oddiy shaklda namoyish etildi, unda ma'lumotlarni tanlash uchun yagona shart ishlatiladi. Shu bilan birga, batafsil ma'lumot olish uchun bir nechta shartlar va ayniqsa, bir nechta where operatorlaridan foydalanish mumkin. Misol sifatida, quyidagi dasturni ko'rib chiqaylik, berilgan massivdan 10 dan kichik va musbat qiymatlarni olish masalasini ko’rib chiqaylik.
C# dasturlash tilida amaliy ishlar:
1.Delegat bilan ishlash.
using System;
namespace Delegate__Sobirov_A
{
public delegate double Arifmetika(double a, double b);
class Program
{
public static void Main(string[] args)
{
Console.Write("a=");
double a = double.Parse(Console.ReadLine());
Console.Write("b=");
double b = double.Parse(Console.ReadLine());
Arifmetika amal =qoshish;
double c = amal(a, b);
Console.WriteLine(" a+b= " + c);
amal = ayrish;
c = amal(a, b);
Console.WriteLine(" a-b= " + c);
amal = kopaytirish;
c = amal(a, b);
Console.WriteLine(" a*b= " + c);
amal =bolish;
c = amal(a, b);
Console.WriteLine(" a/b= " + c);
Console.ReadKey(true);
}
public static double qoshish(double x, double y) { return x + y; }
public static double ayrish(double x, double y) { return x - y; }
public static double kopaytirish(double x, double y) { return x * y; }
public static double bolish(double x, double y) { return x / y; }
}
}
2.C# dasturlash tilida WPF hamda LINQ operatoridan foydalanish .
Do'stlaringiz bilan baham: |