LINQ  მეთოდის სინტაქსი და ლამბდა გამოსახულებები  

LINQ

 როგორც აღვნიშნეთ, პროგრამა დაიწერა LINQ მოთხოვნის სინტაქსის გამოყენებით. ახალა იგივე პროგრამა დავწეროთ LINQ მეთოდის სინტაქსის გამოყენებით. LINQ არის განხორციელებული როგორც კოლექციების, მასივების, მოთხოვნების შედეგების და სხვა ობიექტების, რომლებიც უზრუნველყოფენ IEnumerable ინტერფეისს, გაფართოებული მეთოდების სერია. LINQ-ს გაფართოებული მეთოდები გამოჩნდება, თუ 18.1 პროგრამაში saxelebiვლადის შემდეგ შევიტანთ „ .“ წერტილს. გაიხსნება სია, რომელშიც გამოჩნდება LINQ-ს გაფართოებული მეთოდები: Aggregate<>, All<>, Any<>, Average<>, First<>, Last<>, Contains<>, Take<>, Where<>, Reverse<> Sum<> და ა.შ. თუ using System.Linq დირექტივას გავაკომენტარებთ, მაშინ სიაში ეს მეთოდები აღარ გამოჩნდება. 

 უნდა გვახსოვდეს, რომ მოთხოვნის სინტაქსი უნდა გამოვიყენოთ ყოველთვის, როცა ეს შესაძლებელია, ხოლო მეთოდის სინტაქსი კი მაშინ, როცა ეს აუცილებელია. 

 LINQ მეთოდების უმრავლესობა, რომლებიც იყენებენ მეთოდის სინტაქსს, ითხოვს, რომ გადავცეთ მეთოდი ან ფუნქცია მოთხოვნის გამოსახულების შესაფასებლად. მეთოდი/ფუნქცია პარამეტრი გადაიცემა დელეგატის ფორმით, რომელიც მიმართავს ანონიმურ მეთოდს. ჩვენ ვქმნით მეთოდს/ფუნქციას C# ენის სპეციალური კონსტრუქციის გამოყენებით, რომელსაც ლამბდა გამოსახულება ეწოდება. მისი საშუალებით ვწერთ ანონიმურ მეთოდს, რომელიც გამოიყენება მოთხოვნის გამოსახულების შესაფასებლად. უმარტივესი ლამბდა გამოსახულების მაგალითია: 

cvladi => cvladi > 25 

აქ => არის ლამბდა ოპერატორი. მოცემულ გამოსახულებაში, ლამბდა გამოსახულება განსაზღვრავს ფუნქციას, რომელიც იღებს cvladi პარამეტრს და გასცემს true-ს, თუ cvladi > 25 პირობა სრულდება, წინააღმდეგ შემთხვევაში, გასცემს false მნიშვნელობას. ეს ფუნქცია ანონიმური მეთოდია, რომელსაც სახელი არ აქვს და გამოიყენება როცა ლამბდა გამოსახულება გადაეცემა LINQ მეთოდს.   პროგრამა 18.1 ლამბდა გამოსახულების გამოყენებით ასე ჩაიწერება: 

//          პროგრამა 18.2 

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

{

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

//          LINQ მოთხოვნის ფორმირება  

var shedegi = saxelebi.Where(cvladi => cvladi.StartsWith(“ს”));

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

label1.Text = “სახელები, რომლებიც იწყება ‘ს’ ასოთი:\n”;

foreach ( var elementi in shedegi )

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

}

            კომპილატორი cvladi => cvladi.StartsWith(“ს”) ლამბდა გამოსახულებას გარდაქმნის ანონიმურ მეთოდად, რომელიც სრულდება Where() მეთოდის მიერ saxelebi მასივის თითოეულ ელემენტზე. 

0Shares