Lonw Karda
Endam
C# Linq
Çawa ku em di sql de bi kodên-query yên sql'ê dikarin bigihejin dane-data'yan, heman şiklî em di c# ê de jî dikarin di nav lîsteyan de daneyan xwe bi query'yan bigerin. wiya ji me ra hesaniyek mezin peyda dike û c# bi wê taybetmendiyê ji zimanên din vediqete.
ji bo bikaranîna Library' ya Linq divê em wê tevî(daxilê) projeyê xwe bikin.
"
ji bo vegotina fonksiyonên Linq emê wê lîsteyê bikarbînin;
(ji bo ku wî lîste error nede divê projeya we de class'a "Product" hebe, ji bo kodên class'a Product bersiv-şîroveya yekeminê binerin. herin binê wê entry'yê. û yên duyemin gava ku List bikartînin Library ya "
Fonksiyon-Query' yên Linq'ê
SingleOrDefault()
ji mera hebek item(nesne) dide. Gelemperî ji bo jêbirina item'an tê bikaranîn.
Any()
bi wê fonksiyonê em dikarin bizanin ku item'ek di nava listeyê da heye yan tuneye. bersiva fonksiyon bool'e.
Find()
ji me ra item(nesne) ya ku em digerin dide.
bi wê bikaranînê de ji me ra di nav lîsteya products de item(nesne) ya ku productId' ya wî 3 ye ji me ra dide. heke productId' ya tu item 3 nebe ji me ra "null" dişîne.
FindAll()
FindAll() ji me ra hemu item ku ji şertên me ra li hev tê, ji me ra dide.
li vir result listeyekê ye û em dikarin di nav wê da bi xêra foreach bigerin.
nişe: Find() û FindAll() bê library ya Linq jî tê bikaranîn.
Where()
wî metot jî me ra hemu item ku ji şertên me ra li hev tê, ji me ra dide.
li Wê derê ji mera listeya hemu Notebook'an dide. lê bi rêza lîsteya products'ê dide, heger em bixwazin ku ji me ra bi rêza cuda bide, emê çi bikin?
wiya ji me ra listeyekê li gorî nirxa UnitPrice dide. ji UnitPrice'a herî biçuk destpê dike heta heri mezin.
wiya jî ji UnitPrice'a herî mezin destpê dike heta heri biçuk diçe.
temam em wana çêkir lê heke itemên UnitPrice'a wan yeksan be çi dibe. wana jî bi rêza lîsteya products ê ji mera dide. hekê emê bixwazin ku wana jî li gorî şertekî rêz bikin emê wiya bikartînin;
bi rêza alfabetîk dide.
bi rêza eks(ters) alfabetîk dide.
ji bilî bikaranîna ku li jor hatiye vegotin, bikaranînek din jî heye;
Çawa ku em di sql de bi kodên-query yên sql'ê dikarin bigihejin dane-data'yan, heman şiklî em di c# ê de jî dikarin di nav lîsteyan de daneyan xwe bi query'yan bigerin. wiya ji me ra hesaniyek mezin peyda dike û c# bi wê taybetmendiyê ji zimanên din vediqete.
ji bo bikaranîna Library' ya Linq divê em wê tevî(daxilê) projeyê xwe bikin.
"
using System.Linq;
" wî hevokê li serê koda xwe binivîsin ku hunê bikaribin fonksiyonên Linq' ê bikarbînin.ji bo vegotina fonksiyonên Linq emê wê lîsteyê bikarbînin;
C#:
List<Product> products = new List<Product> {
new Product{ProductId =1, CategoryId=1,ProductName ="Apple Notebook", UnitPrice=12000,UnitInStock=15},
new Product{ProductId =2, CategoryId=1,ProductName ="Hp Notebook", UnitPrice=5000,UnitInStock=3},
new Product{ProductId =3, CategoryId=2,ProductName ="Huawei Notebook", UnitPrice=8000,UnitInStock=2},
new Product{ProductId =4, CategoryId=2,ProductName ="Samsung Phone", UnitPrice=5000,UnitInStock=65},
new Product{ProductId =5, CategoryId=2,ProductName ="Xiaomi Phone", UnitPrice=1850,UnitInStock=1}
};
using System.Collections.Generic;
"jî tevî kodê xwe bikin.)Fonksiyon-Query' yên Linq'ê
SingleOrDefault()
ji mera hebek item(nesne) dide. Gelemperî ji bo jêbirina item'an tê bikaranîn.
C#:
Product productToDelete = products.SingleOrDefault(p => p.ProductId ==product.ProductId);
products.Remove(productToDelete);
Any()
bi wê fonksiyonê em dikarin bizanin ku item'ek di nava listeyê da heye yan tuneye. bersiva fonksiyon bool'e.
C#:
Var result = products.Any(p=> p.ProductName=="Apple Notebook");
Console.WriteLine(result); // ji ekranê ra True dinivîse
Find()
ji me ra item(nesne) ya ku em digerin dide.
C#:
var result = products.Find(p=> p.productId==3);
Console.WriteLine(result.ProductName);
FindAll()
FindAll() ji me ra hemu item ku ji şertên me ra li hev tê, ji me ra dide.
C#:
]var result = products.FindAll(p=> p.ProductName.Contains("Notebook"));
nişe: Find() û FindAll() bê library ya Linq jî tê bikaranîn.
Where()
wî metot jî me ra hemu item ku ji şertên me ra li hev tê, ji me ra dide.
C#:
var result = products.Where(p=>p.ProductName.Contains("Notebook")); //heger hunê bixwazin encama fonksiyon List bibe divê hun dawiya kodê ".ToList();" binivisîn. ---->List<Product> result= products.Where(p=>p.ProductName.Contains("Notebook")).ToList();
foreach(var product in result)
{
Console.WriteLine(product.ProductName);
}
li Wê derê ji mera listeya hemu Notebook'an dide. lê bi rêza lîsteya products'ê dide, heger em bixwazin ku ji me ra bi rêza cuda bide, emê çi bikin?
C#:
var result = products.Where(p=>p.ProductName.Contains("Notebook")).OrderBy(p=>p.UnitPrice);
wiya ji me ra listeyekê li gorî nirxa UnitPrice dide. ji UnitPrice'a herî biçuk destpê dike heta heri mezin.
C#:
var result = products.Where(p=>p.ProductName.Contains("Notebook")).OrderByDescending(p=>p.UnitPrice);
wiya jî ji UnitPrice'a herî mezin destpê dike heta heri biçuk diçe.
temam em wana çêkir lê heke itemên UnitPrice'a wan yeksan be çi dibe. wana jî bi rêza lîsteya products ê ji mera dide. hekê emê bixwazin ku wana jî li gorî şertekî rêz bikin emê wiya bikartînin;
C#:
var result = products.Where(p=>p.ProductName.Contains("Notebook")).OrderByDescending(p=>p.UnitPrice).ThenBy(p=>p.ProductName);
C#:
var result = products.Where(p=>p.ProductName.Contains("Notebook")).OrderByDescending(p=>p.UnitPrice).ThenByDescending(p=>p.ProductName);
ji bilî bikaranîna ku li jor hatiye vegotin, bikaranînek din jî heye;
C#:
var result = from p in products
where p.UnitPrice>6000
orderby p.UnitPrice
select p;
foreach(var product in result)
{
Console.WriteLine(product.ProductName);
}
Sererastkirina dawî: