.NET Uzbekistan
  • .NET Uzbekistan
  • C# / .NET
    • .NET ga xush kelibsiz
    • .NET bilan bog'liq mavhumliklardan qochish
    • .NET asoslari
      • MSIL
      • Memory Management
        • Stack & Heap
      • CLR
    • Basics
      • Starter (boshlang'ich)
        • Java vs C#
        • C# Tarixi
        • Kirish
        • Visual Studio 2019
        • O'zgaruvchilar
        • Ma'lumot turlari
        • Operatorlar
        • Kalit so'zlar
        • ReadLine
        • If-else
        • Switch
        • Math sinfi
        • For sikl operatori
        • While sikl operatori
        • Do-While sikl operatori
        • Foreach sikl operatori
        • Break
        • Continue
        • Goto
        • Kommentlar
      • Essential (muhim)
        • Funksiya
        • Funksiyani qiymat orqali chaqirish
        • Funksiyada Ref kalit so'zidan foydalanish
        • Funksiyada Out parametri
        • Massiv
        • Funksiyalarda massivdan foydalanish
        • Ko'p o'lchamli massiv
        • Parametrlar
        • Array sinfi
        • CMD argumentlari
        • Obyekt va Class lar
        • Konstruktor
        • Obyektni ishga tushiruvchilar
        • Destructor
        • this
        • static
        • Struct
        • Enum
        • Property va Field lar
        • Vorislik
        • Overload (Qayta yuklash)
        • Override (Qayta yozish)
        • Base
        • Polimorfizm
        • Sealed
        • Interface
        • Modifikatorlarga ruxsat berish
        • Inkapsulatsiya
        • Abstrakt class va funksiyalar
        • String
        • StringBuilder
        • String Intern Pool
        • Exception Handling
        • try/catch
        • finally
      • Professional
        • To'plamlar
          • List
          • ArrayList
          • LinkedList
          • SortedList
          • Dictionary
          • HashTable
          • Stack
          • Queue
        • Tuple
        • ValueTuple
        • Delegatlar
          • Func delegati
          • Action delegati
          • Predicate delegati
          • Anonim metodlar
        • Hodisalar
        • Extension metodlar
        • Stream I/O
          • StreamWriter
          • StreamReader
          • MemoryStream
        • File va Directory
          • FileInfo
          • DirectoryInfo
        • MultiThread va Parallel dasturlash
        • Asinxron dasturlash
        • XML Document bilan ishlash
    • LINQ asoslari
      • Average
      • LINQ qanday ishlaydi?
      • LINQ query yozish usullari
      • IEnumerable va IQuerable
      • LINQ operatorlari
      • Select
      • SelectMany
      • Filterlash operatorlari
      • Where
      • OfType
      • Saralash operatorlari
      • OrderBy va OrderByDescending
      • ThenBy va ThenByDescending
      • Reverse
      • Miqdor operatorlari
        • All
        • Any
        • Contains
        • Min
        • Max
      • Set operatsiyasi
        • Distinct
        • Except
        • Intersect
        • Union
      • Bo'lim operatorlari
        • Take
        • TakeWhile
        • Skip
        • SkipWhile
      • Join operatorlari
        • Inner Join
        • Group Join
        • Left Join
      • Element operatsiyalari
        • ElementAt
        • First va FirstOrDefault
        • Last va LastOrDefault
        • Single va SingleOrDefault
    • ORM
      • ADO.NET
      • Dapper
      • Entity Framework
        • Entity Framework Approaches(usullar)
          • Model First Approach
          • Database First Approach
          • Code First Approach
        • Query yozish usullari(Entity Framework)
          • LINQ to SQL
          • Entity SQL
          • Native SQL
        • Entity Framework Core
    • Qo'shimcha sinflar
      • System.Text
        • Encoding
      • System
        • Int32
        • Random
        • DateTime
        • TimeSpan
      • System.Reflection
    • .NET Dasturchi
      • Clean Arxitektura
        • Clean Kod
        • Dizayn Tamoyillari
          • SOLID
            • Yagona Mas'uliyat Tamoyili(SRP)
            • Ochiq Yopiq Tamoyili(O/CP)
            • Liskovning Almashtirish Tamoyili(LSP)
            • Interfeysga ajratish tamoyili(ISP)
            • Qaramlik Inversiya Tamoyili(DIP)
          • DRY
          • KISS
          • YAGNI
        • Dizayn Patternlar
          • Factory Method
          • Abstract Factory
          • Builder
          • Prototype
          • Singleton
          • Adapter
          • Bridge
          • Composite
          • Decorator
          • Façade
          • Flyweight
          • Proxy
          • Chain of Responsibility
          • Command
          • Interpreter
          • Iterator
          • Mediator
          • Memento
          • Observer
          • State
          • Strategy
          • Visitor
          • Template Method
      • Git / Github
      • Muhim terminlar
      • Postman
      • CLI
        • CMD savodxonligi
      • API dan foydalanish
      • WCF
      • Refactor .NET application
      • Unit Test
      • TDD
      • TFS
    • Desktop Dasturlash
      • WPF (Windows Presentation Foundation)
        • WPF ga kirish
          • WPF ning ustunliklari
          • WPF da dastur
          • WPF arxitetkturasi
          • Klasslar iorarxiyasi
        • XAML
          • XAML asoslari
          • XAML orqasida kod
          • XAML xususiyatlari
          • XAML belgilash kengaytmalari
          • Biriktirilgan xususiyatlar
          • XAML da hodisalar
          • XAML da nomlar fazosi
        • WPF ilovasini tuzish
          • Komponovka
          • StackPanel
          • WrapPanel
          • DockPanel
          • Grid
          • GridSplitter
          • Umumiy o'lchamli guruhlar
          • Canvas
          • LnkCanvas
          • Komponovkaga misollar
        • Bog'liqlik xususiyatlari (Dependency property)
          • Bog'liqlik xususiyatlari
          • Bog'liqlik xususiyatlarining roli
          • Bog'liqlik xususiyatlarining aniqlanishi
          • Bog'liqlik xususiyatlarini ishlatish
        • Marshrutlangan hodisalar (Routed Events)
          • Routed Events
          • Bubble Events
          • Direct Events
          • Tunneling Events
        • Qo'shimcha ma'lumotlar
          • WPF ga kirish
          • WinForm va WPF
          • Salom WPF
          • XAML nima?
          • Hodisalar
          • WPF oynasi
          • App.xaml
          • Resurslar
          • Argument berish
          • Son va Vaqtni Formatlash
          • TextBlock elementi – Inline formatlash
          • Label elementi
          • Textbox elementi
      • WinForm (Windows Form)
        • 1-dars. Forma yaratish
        • 2-dars. Muhit bilan tanishish
        • 3-dars. Formaga komponentalar joylashtirish
        • 4-dars. Xodisa(Event)larni boshqarish
        • 5-dars. Dasturni ishga tushurish
      • UWP (Universal Windows Platform)
      • Xamarin
    • Web Dasturlash
      • ASP.NET Core asoslari
        • ASP.NET Core haqida
        • Loyihalar turlari
        • ASP.NET Core dasturlarini hosting qilish
        • Middleware tushunchasi
        • Middleware bilan amaliyot
        • Statik fayllar bilan ishlash
        • Dependency Injection
        • Developer Exception Page
      • ASP.NET Core Web API
        • Web API ga kirish
        • Swagger nima?
        • Http metodlar
        • ActionResult
        • CORs
        • Security (JWT)
        • Swagger ni sozlash
        • Filter va atributlar
        • Configuration va middleware
        • Logging
        • Mapping (AutoMapper)
        • SignalR
        • Keshlash
      • ASP.NET Core MVC
        • MVC nima?
        • ASP.NET Core MVC haqida qisqacha
        • Loyiha strukturasi
        • Controller
        • View
        • Model
        • View larni aniqlash yo'llari
        • Controller dan view ga ma'lumot uzatish
        • ViewBag va ViewData
        • Strongly typed View
        • Layout view haqida
        • ViewStart va ViewImports fayllari haqida
        • Marshrutizatsiya (routing)
        • Tag Helpers
          • Anchor Tag Helper
          • Image Tag Helper
          • Environment Tag Helper
        • Tekshiruv qoidalari (Validation rules)
      • MicroServices
    • Mobile Dasturlash
      • Xamarin.Android
      • Xamarin.IOS
      • Xamarin.Forms
    • Game Dasturlash
      • Unity Starter (boshlang'ich)
      • Unity Advanced (rivojlangan)
    • Internet of Things
    • Machine Learning
    • Telegram Bot
      • Kirish
        • Telegram bot bilan tanishuv
        • ASP.NET Core da birinchi telegram bot
      • Starter
        • Xabar turlari va xabar yuborish
          • Matnli xabarlar bilan ishlash
          • Rasm & Sticker
          • Audio & voice
          • Video & Video Note
          • Dokument fayllar
          • Polls
          • Contact , Location, Venue
          • Album(Media Group)
      • Essential
        • Reply - Markup
          • ReplyKeyboardMarkup, KeyboardButton
          • InlineKeyboardMarkup, InlineKeyboardButton
      • Advanced
        • Deployment
    • Class Library
    • Intervyu savollari
      • C# / .NET asoslari
  • Database
    • MS SQL Server
      • SQL Server sintaksisi
      • Ma'lumot turlari
      • Select
    • PostgreSQL
      • Basic
        • Kirish
        • PostgreSQL tarixi
        • Muhitni sozlash (PgAdmin)
        • Sistaksis
        • Ma'lumot turlari
        • Create Database
        • Select Database
        • Drop Database
        • Create Table
        • Drop Table
        • Scheme
        • Insert so'rovi
        • Select so'rovi
        • Operatorlar
        • Ifodalar
        • Where
        • Where
        • And va Or
        • Update so'rovi
        • Delete so'rovi
        • Like
        • Limit
        • Order By
        • With
        • Having
        • Distinct
      • Advance
        • Constraint (cheklov) lar
        • Join lar
          • Cross join
          • Inner join
          • Left join
          • Right join
          • Full join
        • Union
  • Roadmap
    • Roadmap for .NET developers
    • Roadmap for Azure developers
Powered by GitBook
On this page

Was this helpful?

  1. C# / .NET

LINQ asoslari

Nodirbek Abdulaxadov

PreviousXML Document bilan ishlashNextAverage

Last updated 3 years ago

Was this helpful?

LINQ (Language-Integrated Query) - bu ma'lumot manbasidan so’rov olish uchun oddiy va qulay til. Ma'lumotlar manbayi sifatida - IEnumerable interfeysini (masalan, standart to'plamlar, massivlar) amalga oshiradigan obyekt, DataSet, XML hujjati bo'lishi mumkin. Ammo manba turidan qat'iy nazar, LINQ ma'lumotni olish uchun barchasi uchun bir xil usulni qo'llashga imkon beradi.

Qisqacha qilib aytganda LINQ - kodni ixchamlashtirish va oson o'qish imkoniyatini beradi va undan turli xil ma'lumot manbalari uchun so'rovlarda foydalanish mumkin.

LINQ ning bir nechta turi mavjud:

  • LINQ to Objects : Massivlar va to'plamlar bilan ishlash uchun ishlatiladi

  • LINQ to Entities : Entity Framework texnologiyasi orqali ma'lumotlar bazalariga kirishda foydalaniladi

  • LINQ dan Sql : MS SQL Server-da ma'lumotlarga kirish texnologiyasi

  • LINQ to XML : XML fayllari bilan ishlashda ishlatiladi

  • LINQ to DataSet : DataSet obyekti bilan ishlashda foydalaniladi

  • Parallel LINQ (PLINQ) : parallel so'rovlarni bajarish uchun ishlatiladi

LINQ so'rovlari natijalarni obyekt sifatida qaytaradi. Bu sizga natijalar to'plamida obyektga yo'naltirilgan yondashuvni ishlatishga va natijalarning turli formatlarini obyektlarga aylantirish haqida tashvishlanmaslikka imkon beradi.

LINQ-ning afzalliklari

  • Tanish til: Ishlab chiquvchilar ma'lumotlar manbalarining har bir turi yoki ma'lumotlar formati uchun yangi so'rovlar tilini o'rganishlari shart emas.

  • Kamroq kod yozish: Bu an'anaviy yondoshuv bilan taqqoslaganda yoziladigan kod miqdorini ancha kamaytiradi.

  • Tushunarli kod: LINQ kodni yanada tushunarli qiladi, shuning uchun boshqa ishlab chiquvchilar uni osonlikcha tushunishlari va saqlab turishlari mumkin.

  • Bir nechta ma'lumot manbalarini so'rov qilishning standartlashtirilgan usuli: Bir xil ma'lumot manbalariga so'rov yozish uchun bir xil LINQ sintaksisidan foydalanish mumkin.

  • So'rovlarning vaqt xavfsizligini kompilyatsiya qilish: kompilyatsiya vaqtida obyektlarning turini tekshirishni ta'minlaydi.

  • IntelliSense-ni qo'llab-quvvatlash: LINQ umumiy to'plamlar uchun IntelliSense-ni taqdim etadi.

  • Ma'lumotlarni shakllantirish: Siz har xil shakldagi ma'lumotlarni olishingiz mumkin.

LINQ dan foydalanish

LINQ dan foydalanish uchun bizga .Net Framework 3.5 va C# 3.0 kerak bo’ladi(foydalanish uchun minimum versiyalar).

System kutubxonasiga qo’shimcha ravishda System.Linq kutubxonasidan foydalanamiz.


Misol:

using System;
using System.Linq;
namespace LINQ_operations
{
    class Program
    {
        static void Main(string[] args)
        {
            // Ma’lumotlar manbayi (massiv)
            string[] names = { "Bill", "Steve", "James", "Mohan" };
            // LINQ so’rovi 
            var myLinqQuery = from name in names
                              where name.Contains('a')
                              select name;
            // So’rovni ishlatish
            foreach (var name in myLinqQuery)
                Console.WriteLine(name + " ");
            Console.ReadKey();
            
            //some comment
        }
    }
}

Natija:

Amaldagi LINQ metodlari ro'yxati

  • GroupBy : elementlarni kalitlarga ko'ra guruhlaydi

  • ToLookup : barcha elementlarni lug'atga qo'shgan holda elementlarni kalitlarga ko'ra guruhlaydi

  • Count : to'plamdagi ma'lum bir shartga javob beradigan elementlar sonini hisoblaydi

  • Sum : to'plamdagi sonli qiymatlar yig'indisini hisoblaydi

  • Average : to'plamdagi sonli qiymatlarning o'rtacha qiymatini hisoblaydi

  • Min : minimal qiymatni topadi

  • Max : maksimal qiymatni topadi

  • Concat : ikkita to'plamni birlashtiradi

  • Zip : ma'lum bir shartga muvofiq ikkita to'plamni birlashtiradi

  • ElementAtOrDefault : muayyan indeksda yig'ish elementini tanlaydi yoki indeks doiradan tashqarida bo'lsa, sukut bo'yicha qaytaradi

: tanlangan qiymatlarning proektsiyasini belgilaydi

: tanlov filtrini belgilaydi

: elementlarni o'sish tartibida tartiblaydi

: elementlarni kamayish tartibida tartiblaydi

: elementlarni o'sish tartibida tartiblash uchun qo'shimcha shartlarni belgilaydi

: elementlarni kamayish tartibida tartiblash uchun qo'shimcha shartlarni belgilaydi

: ma'lum bir shart asosida ikkita to'plamni birlashtiradi

: elementlarning ikkala to'plamini va kalitlarga ko'ra guruhlanishini amalga oshiradi

: elementlarni teskari tartibda tartiblaydi

: to'plamdagi barcha elementlarning ma'lum bir shartga javob berishini aniqlaydi

: to'plamdagi kamida bitta elementning ma'lum bir shartga javob berishini aniqlaydi

: to'plamda ma'lum bir element mavjudligini aniqlaydi

: to'plamdagi nusxalarni(bir xil elementlarni) olib tashlaydi

: ikkita to'plamning farqini, ya'ni faqat bitta to'plamda mavjud elementlarni qaytaradi

: ikkita bir xil to'plamlarni birlashtiradi

: ikki to'plamning kesishmasini, ya'ni ikkala to'plamda ham bo'lgan elementlarning kesishmasini qaytaradi

: ma'lum miqdordagi elementlarni tanlaydi

: ma'lum miqdordagi elementlarni o'tkazib yuboradi

: agar shart to'g'ri bo'lsa, ketma-ketlik elementlari zanjirini qaytaradi

: ular berilgan shartni bajarishi sharti bilan elementlarni ketma-ketlikda o'tkazib yuboradi va keyin qolgan elementlarni qaytaradi

: to'plamdagi birinchi elementni tanlaydi

: to'plamdagi birinchi elementni tanlaydi yoki sukut bo'yicha qaytaradi

: to'plamning bitta elementini tanlaydi, agar to'plamda bir yoki bir nechta element bo'lsa, istisno hosil bo'ladi

: to'plamdagi birinchi elementni tanlaydi yoki sukut bo'yicha qaytaradi

: ma'lum bir indeksda ketma-ketlik elementini tanlaydi

: to'plamdagi oxirgi elementni tanlaydi

: to'plamdagi so'nggi elementni tanlaydi yoki sukut bo'yicha qaytaradi

****

Select
Where
OrderBy
OrderByDescending
ThenBy
ThenByDescending
Join
GroupJoin
Reverse
All
Any
Contains
Distinct
Except
Union
Intersect
Take
Skip
TakeWhile
SkipWhile
First
FirstOrDefault
Single
SingleOrDefault
ElementAt
Last
LastOrDefault
LINQ metodlarining qo’llanishiga doir misollar**.**