LINQ მოთხოვნის სინტაქსი

ინტეგრირებული მოთხოვნების ენა (LINQ, Language-Integrated Query) არის C# ენის გაფართოება, რომელიც ინტეგრირებულია ამ ენაში. ის არის დიდი მოცულობის მონაცემებთან მუშაობის მოხერხებული, სწრაფი და ეფექტური მექანიზმი. LINQ გვათავისუფლებს მონაცემების გაფილტვრისა და დახარისხების რთული და გრძელი კოდების წერისაგან. ის არის მოთხოვნების ენა, რომელიც საშუალებას გვაძლევს მიღებული შედეგები ადვილად დავახარისხოთ, გავფილტროთ და შევასრულოთ გამოთვლები. LINQ საშუალებას გვაძლევს ეფექტურად ვიმუშაოთ დიდი ზომის მონაცემთა ბაზებთან და კომპლექსურ XML დოკუმენტებთან, რომლებშიც მილიონზე მეტი ჩანაწერია.

LINQ ტექნოლოგია შეგვიძლია გამოვიყენოთ მონაცემთა Object, SQL და XML ტიპების მიმართ:

  1. წარმოქმნის მოთხოვნებს, რომლებიც      გამოიყენება    მასივების,       სიებისა           და        სხვა კოლექციების მიმართ.
  2. წარმოქმნის მოთხოვნებს, რომლებიც გამოიყენება მონაცემთა რელაციური ბაზების მიმართ, რომლებიც იყენებენ სტანდარტულ SQL ენას. ასეთია Microsoft SQL Server, Oracle და ა.შ.
  3. წარმოქმნის მოთხოვნებს, რომლებიც გამოიყენება XML ობიექტებთან სამუშაოდ.

LINQ მოთხოვნა ოთხი ნაწილისაგან შედგება: var, from, where და select. მისი სინტაქსია:

var შედეგი =

from ცვლადი in კოლექცია

[ where პირობა  ] select ცვლადი;

var განყოფილებაში მითითებულია ცვლადი, რომელიც შეიცავს მოთხოვნის მიერ გაცემულ შედეგს. from განყოფილებაში ეთითება დასამუშავებელი კოლექცია ან მასივი. კოლექცია არ უნდა შეიცავდეს მხოლოდ ერთ ობიექტს ან ცვლადს. where განყოფილებაში ეთითება პირობა ჩვენი მოთხოვნისათვის. ამ განყოფილების მითითება აუცილებელი არ არის. select განყოფილებაში მითითებული ცვლადის მნიშვნელობა უნდა გამოჩნდეს შედეგობრივ ნაკრებში.

იმისათვის, რომ შევძლოთ LINQ  მოთხოვნების შესრულება, using დირექტივების ბლოკში უნდა მოვათავსოთ using System.Linq; დირექტივა. ჩვეულებრივ, ამას Visual Studio ავტომატურად აკეთებს.

განვიხილოთ LINQ მოთხოვნის გამოყენების მარტივი მაგალითი. მოყვანილი პროგრამით ხდება სტრიქონების მასივიდან იმ სტრიქონების ამორჩევა, რომლებიც „ს“ ასოთი იწყება. მოცემული პროგრამა დაწერილია LINQ მოთხოვნის სინტაქსის გამოყენებით.

//

//          სტრიქონების მასივიდან იმ სტრიქონების ამორჩევა, რომლებიც  „ს“ ასოთი იწყება

{

string[] saxelebi = { “რომანი”, “ანა”, “გიორგი”, “არჩილი”, “სანდრო”, “დავითი”, “ვახტანგი”, “ბექა”,

“ალექსანდრე”, “საბა”, “სიმონი”, “ლია”, “ლუკა” };

//          LINQ მოთხოვნის ფორმირება   var shedegi =  from cvladi in saxelebi  where cvladi.StartsWith(“ს”)  select cvladi;

//          შედეგების ეკრანზე გამოტანა

label1.Text = “სახელები, რომლებიც იწყება „ს“ ასოთი:\n”; foreach ( var elementi in shedegi )

label1.Text += elementi.ToString() + “\n”;

}

 როგორც პროგრამიდან ჩანს, LINQ მოთხოვნის მიერ გაცემული სტრიქონები მოთავსთდება shedegi ცვლადში. saxelebi მასივიდან ამორჩეული თითოეული სტრიქონი შემოწმდება იწყება თუ არა ის „ს“ ასოთი. თუ კი, მაშინ ის ამოირჩევა და მოთავსთდება shedegi ცვლადში. შედეგად, label1a კომპონენტში გამოჩნდება ის სტრიქონები, რომლებიც „ს“ ასოთი იწყება.

ავტ: რომან სამხარაძე