LINQ query yozish usullari

Suxrob Xayitmurodov

Kamina is back again baby!! :haha

Assalomu alaykum hurmatli yurtdoshlar. Galdagi mavzuyimizda LINQ da query yozish usullari ko'rib chiqamiz. C# tilida querylarni yozishning 3 xil usullari mavjud. Har bir usulning o'ziga yarasha kerakli tomonlari mavjud:

  1. Query Syntax

  2. Method Syntax

  3. Mixed Syntax (Query + Method)

Birinchisidan boshlaymiz: Query Syntax usuli har qanday murakkab querylani oson, tushunishga qulay va sodda ko'rinishga ega usul hisoblanadi. Bu usul ko'p hollarda SQL queryga juda o'xshab ketadi. Quyida siz ushbu usulning sintaksisini ko'rishingiz mumkin:

from obj in dataSource
where condition
select obj

Ikkinchisidan davom ettiramiz: Method Syntax bugungi kunda eng mashhur usullardan hisoblanadi (serioz). Chunki ko'pgina murakkab vazifalarni ushbu usul bilan osonlikcha hal qilsa bo'ladi. Bu usul sintaksisi o'qishga juda oson hisoblanadi (ko'pchilik dasturchilar tomonidan tasdiqlangan). Lekin murakkab querylar uchun ushbu usulni Query Syntaxga nisbatan yozish birmuncha qiyin. Bu usulda query bir necha metodlar (albatta nuqta(.)) bilan aralashgan holda yoziladi. Quyida sintaksisini ko'rishingiz mumkin:

DataSource.ConditionMethod().SelectionMethod()

Uchinchisi bilan tugatamiz: Mixed Syntax. Bu usul joriy usullar, Query Syntax va Method Syntaxlarning kombinatsiyasi desak adashmaymiz. Ushbu usul bilan querylarni yozish bir muncha osonlashishi mumkin. Sintaksisi quyidagicha

(from obj in dataSource
where condition
select obj).Method()

Agarda 10 daqiqa vaqtingizni diqqat bilan ushbu maqolaga sarflasangiz, demak siz hech qachon query yozish usullarida qiyinchiliklarga duch kelmaysiz!

class LINQQueryExample // dot-net.uz uchun
{
    static void Main()
    {
        List<int> list = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
        var querySyntax = from obj in list
                          where obj > 2
                          select obj;
        foreach (var item in querySyntax)
        {
            Console.WriteLine(item);
        }
        Console.WriteLine("#____________#_____________#________________#");


        var methodSyntax = list.Where(obj => obj > 2);

        foreach (var item in methodSyntax)
        {
            Console.WriteLine(item);
        }
        Console.WriteLine("#____________#_____________#________________#");



        var mixedSyntax = (from obj in list
                           select obj).Max();

        Console.WriteLine("Max value: " + mixedSyntax);

    }
}

Last updated