Lekérdezés szintaxisa:
Nézzük az általános szintaxist:
tól től iterátor ban ben Adatforrásválassza ki iterátor ;
Itt:
- A Data_Source lehet az adatokat tartalmazó lista.
- Az iterátor az elemek adatforrásból való lekérésére szolgál.
Adatforrás
Ebben a teljes útmutatóban a következő rekordlistát használjuk adatforrásként, és az összes lekérdezést csak erre az adatforrásra alkalmazzuk. Győződjön meg arról, hogy ezt a kódot futtatja a környezetében, és egyenként módosítsa a lekérdezési utasításokat a következő példákkal, amelyeket tárgyalni fogunk:
segítségével Rendszer ;
segítségével System.Collections.Generic ;
segítségével System.Linq ;
segítségével System.Collections ;
nyilvános osztály Számítások
{
nyilvános statikus üres Fő ( )
{
// Lista létrehozása
Lista country_prices = új Lista ( ) {
// 5 rekord hozzáadása a listához
új Árak ( ) { tétel = 'Gyümölcsök' ,elhelyezkedés = 'EGYESÜLT ÁLLAMOK' , Mennyiség = 100 , költség = 345,78 } ,
új Árak ( ) { tétel = 'dió' ,elhelyezkedés = 'India' , Mennyiség = 200 , költség = 3645,78 } ,
új Árak ( ) { tétel = 'Mások' ,elhelyezkedés = 'UK' , Mennyiség = 500 , költség = 90,68 } ,
új Árak ( ) { tétel = 'olaj' ,elhelyezkedés = 'EGYESÜLT ÁLLAMOK' , Mennyiség = 100 , költség = 345,78 } ,
új Árak ( ) { tétel = 'Chilli' ,elhelyezkedés = 'EGYESÜLT ÁLLAMOK' , Mennyiség = 10 , költség = 67,89 } ,
} ;
az egyes ( volt én ban ben country_prices )
{
Konzol . WriteLine ( én . tétel + ' ' + én . elhelyezkedés + ' ' + én . Mennyiség + ' ' + én . költség ) ;
}
}
}
nyilvános osztály Árak {
nyilvános húr tétel { kap ; készlet ; }
nyilvános húr elhelyezkedés { kap ; készlet ; }
nyilvános int Mennyiség { kap ; készlet ; }
nyilvános kettős költség { kap ; készlet ; }
}
Feljegyzések:
Magyarázat:
1. Hozza létre az árakat a következő attribútumokkal:
2. Hozzon létre egy másik osztályt, amely a „Számítások” a fő metódussal, és hozzon létre egy ország_ár listát öt rekordból.
Válassza ki
Alapvetően a „select” egy vetületi operátor, amely kiválasztja az attribútumokat a megadott adatforrásból. A lekérdezés a „from” szóval kezdődik. Ezután megadjuk azt az iterátort, amely az adatforráson keresztül iterál. Ezután a „select” operátor kerül megadásra.
Szintaxis:
Minden attribútum: iterator in Data_Source iterator kiválasztása;
Konkrét attribútum: a Data_Source iteratorból válassza ki az iterator.attribute elemet;
1. példa:
Írjunk lekérdezést az összes rekord kiválasztásához a listából.
segítségével Rendszer ;segítségével System.Collections.Generic ;
segítségével System.Linq ;
segítségével System.Collections ;
nyilvános osztály Számítások
{
nyilvános statikus üres Fő ( )
{
// Lista létrehozása
Lista country_prices = új Lista ( ) {
// 5 rekord hozzáadása a listához
új Árak ( ) { tétel = 'Gyümölcsök' ,elhelyezkedés = 'EGYESÜLT ÁLLAMOK' , Mennyiség = 100 , költség = 345,78 } ,
új Árak ( ) { tétel = 'dió' ,elhelyezkedés = 'India' , Mennyiség = 200 , költség = 3645,78 } ,
új Árak ( ) { tétel = 'Mások' ,elhelyezkedés = 'UK' , Mennyiség = 500 , költség = 90,68 } ,
új Árak ( ) { tétel = 'olaj' ,elhelyezkedés = 'EGYESÜLT ÁLLAMOK' , Mennyiség = 100 , költség = 345,78 } ,
új Árak ( ) { tétel = 'Chilli' ,elhelyezkedés = 'EGYESÜLT ÁLLAMOK' , Mennyiség = 10 , költség = 67,89 } ,
} ;
//operátor kiválasztása a lekérdezésben
volt adat = tól től én ban ben country_prices
válassza ki én ;
az egyes ( volt én ban ben adat )
{
Konzol . WriteLine ( én . tétel + ' ' + én . elhelyezkedés + ' ' + én . Mennyiség + ' ' + én . költség ) ;
}
}
}
nyilvános osztály Árak {
nyilvános húr tétel { kap ; készlet ; }
nyilvános húr elhelyezkedés { kap ; készlet ; }
nyilvános int Mennyiség { kap ; készlet ; }
nyilvános kettős költség { kap ; készlet ; }
}
Kimenet:
Itt nem adtunk meg semmilyen attribútumot a „select” lekérdezésben. Az iterátor segítségével a „foreach” cikluson belüli lekérdezésből (adatokból) lehívtuk az összes attribútumot.
2. példa:
Most szerezze be az elemeket az item attribútum megadásával a „select” operátoron belül. A lekérdezés: ' az i-től az ország_árakban válassza ki az i.elemet ”.
//válassza ki az operátort az item attribútum lekérdezéséhezvolt adat = tól től én ban ben country_prices
válassza ki én . tétel ;
az egyes ( volt én ban ben adat )
{
Konzol . WriteLine ( én ) ;
}
Kimenet:
21. sor – 29. sor:
2. Hol
Ha bizonyos feltételek/feltételek alapján szeretné szűrni az adatokat, használhatja a „hol” operátort a lekérdezésben a „select” záradékkal együtt. De először a „hol” operátor kerül felhasználásra, majd a select operátor kerül megadásra.
Szintaxis:
Nézzük meg, hogyan kell használni a „hol” operátort a LINQ lekérdezésben.
tól től iterátor ban ben Adatforrásahol feltétel / s
válassza ki iterátor . tulajdonság ;
1. példa: Egyetlen állapot
Szűrjük a rekordokat az item attribútum alapján. Használja az egyenlő (==) operátort a „hol” operátorban feltételként, és hasonlítsa össze az iterátort a „Chillies”-vel. Tehát a „Chillies”-hez kapcsolódó rekordok vannak kiválasztva.
A lekérdezés ' i-től ország_árakban
ahol i.item == 'Chillies'
válassz én”
volt adat = tól től én ban ben country_prices
ahol én . tétel == 'Chilli'
válassza ki én ;
az egyes ( volt én ban ben adat )
{
Konzol . WriteLine ( én . tétel + ' ' + én . elhelyezkedés + ' ' + én . Mennyiség + ' ' + én . költség ) ;
}
Kimenet:
Csak egy rekord van a „Chillies” tétellel.
21. sor – 30. sor:
2. példa: Több feltétel
Szűrjük a rekordokat a hely és mennyiség attribútumok alapján. A mennyiségnek 50-nél nagyobbnak és 300-nál kisebbnek kell lennie. A helyszín legyen „USA”.
A lekérdezés ' i-től ország_árakban
ahol i.mennyiség > 50
ahol i.mennyiség < 300
ahol i.location == 'USA'
válassz én”
volt adat = tól től én ban ben country_prices
ahol én . Mennyiség > ötven
ahol én . Mennyiség < 300
ahol én . elhelyezkedés == 'EGYESÜLT ÁLLAMOK'
válassza ki én ;
az egyes ( volt én ban ben adat )
{
Konzol . WriteLine ( én . tétel + ' ' + én . elhelyezkedés + ' ' + én . Mennyiség + ' ' + én . költség ) ;
}
Kimenet:
Két olyan rekord van, amely megfelelt az előző feltételeknek.
21. sor – 32. sor:
3. példa: És (&&) kezelő
Megadhatjuk az „és (&&)” operátort, hogy egyszerre több feltételt adjunk meg. Ha minden feltétel igaz, akkor a lekérdezés az összes feltételnek megfelelő rekordokat adja vissza.
Ebben a példában akkor jelöljük ki a rekordokat, ha a mennyiség nagyobb, mint 20, és a költség 67,89.
A lekérdezés ' i-től ország_árakban
ahol i.mennyiség < 20 && i.költség == 67,89
válassz én”
ahol én . Mennyiség < húsz && én . költség == 67,89
válassza ki én ;
az egyes ( volt én ban ben adat )
{
Konzol . WriteLine ( én . tétel + ' ' + én . elhelyezkedés + ' ' + én . Mennyiség + ' ' + én . költség ) ;
}
Kimenet:
Csak egy rekord van 20-nál kisebb mennyiséggel és 67,89-es költséggel
21. sor – 29. sor:
4. példa: Vagy (||) Üzemeltető
A „vagy (||)” operátor több feltétel egyidejű megadására is szolgál. Ha legalább egy feltétel igaz, akkor a feltételnek megfelelő rekordokat a rendszer visszaküldi.
Ebben a példában akkor választjuk ki a rekordokat, ha a mennyiség nagyobb, mint 300, vagy a hely „Tokió”.
A lekérdezés ' i-től ország_árakban
ahol i.mennyiség > 300 || i.location == 'Tokió'
válassz én”
ahol én . Mennyiség > 300 || én . elhelyezkedés == 'Tokió'
válassza ki én ;
az egyes ( volt én ban ben adat )
{
Konzol . WriteLine ( én . tétel + ' ' + én . elhelyezkedés + ' ' + én . Mennyiség + ' ' + én . költség ) ;
}
Kimenet:
Csak egy rekord van 300-nál nagyobb mennyiséggel (az első feltétel megfelel).
21. sor – 29. sor:
3. Rendelés:
Ha a LINQ-lekérdezés által visszaadott rekordokat az attribútumok bármelyikének értékei alapján növekvő vagy csökkenő sorrendbe szeretné rendezni, használhatja a „rendezés szerint” operátort a lekérdezésben. Ezt az operátort a „select” operátor előtt kell megadnia.
Szintaxis:
Nézzük meg, hogyan kell használni az „order by” operátort a LINQ lekérdezésben.
Növekvő sorrendben:
tól től iterátor ban ben Adatforrásrendelés által iterátor . tulajdonság emelkedő
válassza ki iterátor ;
Csökkenő sorrend:
tól től iterátor ban ben Adatforrásrendelés által iterátor . tulajdonság ereszkedő
válassza ki iterátor ;
1. példa: Növekvő sorrendben
Válassza ki az összes attribútumot az adatforrásból (listából), és adja vissza őket növekvő sorrendben a mennyiség attribútum értékei alapján.
A lekérdezés ' i-től ország_árakban
sorrend szerint i.mennyiség szerint növekvő
válassz én”
i . Mennyiség emelkedő
válassza ki én ;
az egyes ( volt én ban ben adat )
{
Konzol . WriteLine ( én . tétel + ' ' + én . elhelyezkedés + ' ' + én . Mennyiség + ' ' + én . költség ) ;
}
Kimenet:
21. sor – 29. sor:
2. példa: Csökkenő sorrend
Válassza ki az összes attribútumot az adatforrásból (listából), és adja vissza azokat csökkenő sorrendben a költség attribútum értékei alapján.
A lekérdezés ' i-től ország_árakban
rendelés szerint i.költség csökkenő
válassz én”
i . költség ereszkedő
válassza ki én ;
az egyes ( volt én ban ben adat )
{
Konzol . WriteLine ( én . tétel + ' ' + én . elhelyezkedés + ' ' + én . Mennyiség + ' ' + én . költség ) ;
}
Kimenet:
21. sor – 29. sor:
4. Limit
Az SQL korlátozása korlátozza a lekérdezés által visszaadott rekordokat. A lekérdezés által visszaadott legfontosabb rekordokat adja vissza. A LINQ-ban ezt a Skip() és a Take() operátor használatával érhetjük el. A Take() megkapja a megadott számú rekordot. A Skip() a kezdő rekordszám megadására szolgál. Ily módon elérhetjük a „limit” funkcionalitást a LINQ-ban.
Szintaxis:
( tól től iterátor ban ben Adatforrásválassza ki iterátor ) . Kihagyás ( n ) . Vesz ( n ) ;
- A Skip() a rekordok átugrására és a fennmaradó rekordok visszaadására szolgál. Egy egész számot vesz fel, amely megadja az átugorandó elemek számát. Esetünkben ez 0.
- A Take() arra szolgál, hogy „n” számú rekordot vegyen ki az első rekordból.
Példa:
Válassza ki az első három rekordot a lekérdezés által visszaadott öt rekord közül.
A lekérdezés ' (i-től ország_árakban
válassza az i lehetőséget. Kihagy(0).Vedd(3)”
válassza ki én ) . Kihagyás ( 0 ) . Vesz ( 3 ) ;
az egyes ( volt én ban ben adat )
{
Konzol . WriteLine ( én . tétel + ' ' + én . elhelyezkedés + ' ' + én . Mennyiség + ' ' + én . költség ) ;
}
}
Kimenet:
21. sor – 28. sor:
Következtetés
Megtanultuk, hogyan írjunk lekérdezéseket C# LINQ-ban, amely hasonló az SQL-hez. Ennek az oktatóanyagnak a részeként megvitattuk, hogyan használhatjuk a „select” operátort a rekordok adatforrásból való kiválasztásához. A lekérdezés által visszaadott rekordok szűréséhez a „hol” operátort használtuk a feltételek megadásával. Ezután megtanultuk, hogyan kell rendezni a lekérdezés által visszaadott rekordokat az „order by” operátorral. Végül a rekordok korlátozására a Skip() és Take() operátorokat használtuk.