რთულ ობიექტებთან მუშაობა

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

//
// პროგრამით ხდება LINQ მოთხოვნის გამოყენებით დემონსტრირება
// რთული ობიექტების მიმართ
class Studenti1
{
public string gvari; public int asaki; public double tanxa; public int kursi; public string fakulteti;
public Studenti1(string par1, int par2, double par3, int par4, string par5)
{
gvari = par1; asaki = par2; tanxa = par3; kursi = par4;
fakulteti = par5;
}
}
private void button1_Click(object sender, EventArgs e)
{
Studenti1[] obj = new Studenti1[10];
obj[0] = new Studenti1(“სამხარაძე”, 21, 1200.50, 4, “ინფორმატიკის”); obj[1] = new Studenti1(“კაპანაძე”, 20, 1250.50, 4, “ენერგეტიკის”); obj[2] = new Studenti1(“კირვალიძე”, 18, 1300.50, 4, “ინფორმატიკის”); obj[3] = new Studenti1(“ჭუმბურიძე”, 19, 1100.50, 4, “ინფორმატიკის”); obj[4] = new Studenti1(“ხუციშვილი”, 20, 1400.50, 4, “სამშენებლო”); obj[5] = new Studenti1(“კიკნაძე”, 21, 1200.50, 4, “ინფორმატიკის”); obj[6] = new Studenti1(“ნონიაშვილი”, 20, 1250.50, 4, “ენერგეტიკის”); obj[7] = new Studenti1(“ქევხიშვილი”, 18, 1300.50, 4, “ინფორმატიკის”); obj[8] = new Studenti1(“ხოშტარია”, 19, 1100.50, 4, “ინფორმატიკის”);
obj[9] = new Studenti1(“ქარცივაძე”, 20, 1400.50, 4, “სამშენებლო”);
// LINQ მოთხოვნის ფორმირება
var shedegi = from cvladi in obj
where cvladi.fakulteti == “ინფორმატიკის” select cvladi;
// ეკრანზე შედეგების გამოტანა
label1.Text = “ინფორმატიკის ფაკულტეტის სტუდენტები:\n გვარი ფაკულტეტი ასაკი კურსი თანხა\n”;
foreach (Studenti1 cvladi in shedegi)
label1.Text += cvladi.gvari + ” ” + cvladi.fakulteti + ” ” + cvladi.asaki.ToString() + ” ” + cvladi.kursi.ToString() + ” ” + cvladi.tanxa.ToString() + “\n”;
}

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

// პროგრამით ხდება List ტიპის გამოყენების დემონსტრირება LINQ მოთხოვნაში class Studenti
{
public string gvari; public int asaki; public double tanxa; public int kursi;
public string fakulteti;
}
private void button1_Click(object sender, EventArgs e)
{
List Studentebi = new List
{
new Studenti { gvari =”სამხარაძე”, asaki = 21, tanxa = 1600, kursi = 4, fakulteti = “ინფორმატიკის” }, new Studenti { gvari =”კაპანაძე”, asaki = 18, tanxa = 1770.50, kursi = 3, fakulteti = “ენერგეტიკის” }, new Studenti { gvari =”ქევხიშვილი”, asaki = 20, tanxa = 1830.50, kursi = 1, fakulteti = “სამშენებლო” }, new Studenti { gvari =”ყალაბეგიშვილი”,asaki=19,tanxa=2150.00,kursi=2,fakulteti=”ჰუმანიტარული”}, new Studenti { gvari =”ხოშტარია”, asaki = 21, tanxa = 2050.50, kursi = 2, fakulteti = “ინფორმატიკის” }, new Studenti { gvari =”მამაიაშვილი”, asaki = 19, tanxa = 1950.50, kursi =3,fakulteti=”ინფორმატიკის”}, new Studenti { gvari =”ნონიაშვილი”, asaki = 18, tanxa = 1900.00, kursi = 4, fakulteti = “სამშენებლო” }, new Studenti { gvari =”ასანიძე”, asaki = 20, tanxa = 1500.50, kursi = 4, fakulteti = “ჰუმანიტარული” }, new Studenti { gvari =”ჭუმბურიძე”, asaki = 19, tanxa = 2000.50, kursi = 4, fakulteti = “ენერგეტიკის” }, new Studenti { gvari =”კირვალიძე”, asaki = 18, tanxa = 1275.00,kursi=2,fakulteti=”ინფორმატიკის”}
};
// LINQ მოთხოვნის ფორმირება
var shedegi = from cvladi in Studentebi
where cvladi.fakulteti == “ინფორმატიკის” select cvladi;
// ეკრანზე შედეგების გამოტანა
label1.Text = “ინფორმატიკის ფაკულტეტის სტუდენტები:\n გვარი ფაკულტეტი ასაკი კურსი თანხა\n”;
foreach (Studenti cvladi in shedegi)
label1.Text += cvladi.gvari + ” ” + cvladi.fakulteti + ” ” + cvladi.asaki.ToString() + ” ” + cvladi.kursi.ToString() + ” ” + cvladi.tanxa.ToString() + “\n”;
}