Sobes.tech
Junior

LINQ ilə tanışsınız?

sobes.tech Süni İntellekt

AI-dan cavab

Bəli, tanışam.

LINQ (Language Integrated Query) - bu, C# dilində sorğuların funksionallığını inteqrasiya edən texnologiyalar toplusudur. Bu, müxtəlif məlumat mənbələrinə (kolleksiyalar, verilənlər bazaları, XML və s.) birbaşa C# kodunda sorğular yazmağa imkan verir və vahid sintaksis və model istifadə edir.

LINQ-in əsas komponentləri və xüsusiyyətləri:

  • LINQ provayderləri: xüsusi məlumat mənbələri üçün LINQ sorğularını spesifik əmrlərə çevirən interfeys və sinifləri həyata keçirirlər. Nümunələr: LINQ to Objects, LINQ to SQL, LINQ to XML.
  • LINQ operatorları: IEnumerable<T> və IQueryable<T> üçün genişləndirmələrdir və filtrasiya, proyeksiya, sıralama, qruplaşdırma və agregasiya kimi standart sorğu əməliyyatlarını təmin edir. İki formada mövcuddur:
    • Sorğu sintaksisi (Query Syntax), SQL-ə bənzəyir:
      // Sorğu sintaksisi nümunəsi
      var query = from item in collection
                  where item.Property > 10
                  orderby item.AnotherProperty
                  select item.Result;
      
    • Metod sintaksisi (Method Syntax), genişləndirmə metodlarından istifadə edir:
      // Metod sintaksisi nümunəsi
      var query = collection.Where(item => item.Property > 10)
                            .OrderBy(item => item.AnotherProperty)
                            .Select(item => item.Result);
      
  • Gecikmiş icra (Deferred Execution): LINQ sorğuları dərhal icra edilmir. Yalnız sorğunun nəticəsi həqiqətən lazım olduqda, məsələn, foreach ilə keçərkən, ToList(), ToArray(), Count() və s. çağırıldıqda icra olunur. Bu, məlumatların işlənməsini optimallaşdırır.
  • Güclü tip yoxlaması: LINQ, C#-ın statik tip yoxlamasının üstünlüklərindən istifadə edir və tərtib zamanı yoxlamalar və IntelliSense təmin edir.
  • Birləşdirmə imkanı: Sorğu operatorları asanlıqla birləşdirilə bilər və mürəkkəb sorğular yarada bilər.
  • Genişləndirmə imkanları: Öz provayderlərinizi və operatorlarınızı yarada bilərsiniz.

Ən çox istifadə olunan LINQ operatorları:

Kateqoriya Metod sintaksisində operatorlar Təsviri
Filtrasiya Where, OfType Elementləri şərtə və ya növə görə seçir.
Proyeksiya Select, SelectMany Elementləri çevirmək və ya genişləndirmək.
Sıralama OrderBy, OrderByDescending, ThenBy, ThenByDescending, Reverse Elementləri sıralayır.
Qruplaşdırma GroupBy Elementləri açara görə qruplaşdırır.
Birleştirme Join, GroupJoin Fərqli mənbələrdən elementləri birləşdirir.
Aggregasiya Count, LongCount, Sum, Average, Min, Max, Aggregate Toplam və ya digər agregat dəyərləri hesablayır.
Kvantorlar All, Any, Contains, SequenceEqual Elementlərin mövcudluğunu və ya uyğunluğunu yoxlayır.
Elementlər First, FirstOrDefault, Single, SingleOrDefault, ElementAt, ElementAtOrDefault, DefaultIfEmpty Tək elementləri əldə edir.
Bölmə Take, Skip, TakeWhile, SkipWhile Elementləri seçir və ya atlayır.
Konvertasiya ToArray, ToList, ToDictionary, ToLookup, Cast, AsEnumerable, AsQueryable Digər kolleksiya tiplərinə çevrilir.
Nəsil Range, Repeat Ardıcıllıqlar yaradır.
Kümələr Distinct, Union, Intersect, Except Kümə əməliyyatları.
Birleştirme Zip İki ardıcıllıqdan elementləri birləşdirir.

LINQ, C#-da məlumatlarla işləməyi sadələşdirir və daha oxunaqlı edir.