I C#, hvis du vil gruppere alle lignende verdier på ett sted, gir LINQ i C# GroupBy () -metode.
LINQ Groupby -metoden brukes til å gruppere de lignende verdiene i en spesifisert attributt og sted med alle lignende elementer.
Metodesyntaks:
input_source.Groupby (element => element.Egenskap);
Spørringssyntaks:
Fra Iterator i Input_Source Group Iterator av Iterator.Egenskap
Hvor, input_source er datakilden (listen) og iterator brukes til å iterere elementene som er til stede i input_source.
Eksempel 1:
Vi vil lage en liste som lagrer matdetaljer og grupperer verdiene i listen basert på forskjellige attributter.
ved hjelp av system;
Bruke system.Linq;
Bruke system.Samlinger.Generisk;
// Lag en klasse - Linuxhint
Klasse Linuxhint
// definere dataene for mat
Klassemat
public int food_price get; sett;
offentlig strengnavn get; sett;
offentlig int -mengde get; sett;
public String City get; sett;
statisk offentlig tomrom main ()
// lage data
ListFirst_list = new List ();
// Legg til verdier
FIRST_LIST.Legg til (ny mat mat_price = 300, name = "vegtables", mengde = 1, city = "california");
FIRST_LIST.Legg til (ny mat Food_Price = 34, name = "frukt", mengde = 4, city = "california");
FIRST_LIST.Legg til (ny mat mat_price = 100, name = "sopp", mengde = 2, city = "nepal");
FIRST_LIST.Legg til (ny mat mat_price = 564, name = "vegtables", kvantitet = 10, city = "guntur");
FIRST_LIST.Legg til (ny mat Food_Price = 500, name = "frukt", mengde = 8, city = "nepal");
FIRST_LIST.Legg til (ny mat mat_price = 764, name = "pulser", mengde = 10, city = "guntur");
FIRST_LIST.Legg til (ny mat mat_price = 400, name = "pulser", mengde = 8, city = "nepal");
Konsoll.WritLine ("---------------------- Faktisk liste ------------------- ------- ");
foreach (var verdi i første_liste)
Konsoll.WritLine (verdi.Food_Price+"->"+Verdi.Navn+"->"+Verdi.Mengde+"->"+Verdi.by);
Konsoll.WritLine ("---------------------- Linq Groupby City ---------------------------------- -------- ");
// gruppere verdiene i byattributtet
var result = first_list.Groupby (element => element.by);
// Vis de grupperte resultatene ved hjelp av foreach -sløyfe
foreach (var jeg i resultat)
foreach (var j i i)
Konsoll.WritLine (J.Food_Price+"->"+J.Navn+"->"+J.Mengde+"->"+J.by);
Konsoll.WritLine ("---------------------- Linq Groupby Navn -------------------------------------------------------------------------------------------------------------------------- -------- ");
// gruppere verdiene i Navn -attributtet
var result2 = first_list.Groupby (element => element.Navn);
// Vis de grupperte resultatene ved hjelp av foreach -sløyfe
foreach (var i i resultat2)
foreach (var j i i)
Konsoll.WritLine (J.Food_Price+"->"+J.Navn+"->"+J.Mengde+"->"+J.by);
Produksjon:
Forklaring:
1. Så først opprettet vi en liste som hadde matdetaljer.
2. Etter det grupperer vi verdier i bykolonnen. Endelig bruker vi for hver løkke for å vise de grupperte verdiene.
3. Til slutt grupperer vi verdier i navnekolonnen, så bruker vi for hver løkke for å vise de grupperte verdiene.
Eksempel 2:
Vi oppretter en liste som lagrer matdetaljer og grupperer verdiene i listen basert på forskjellige attributter ved hjelp av spørringssyntaks.
ved hjelp av system;
Bruke system.Linq;
Bruke system.Samlinger.Generisk;
// Lag en klasse - Linuxhint
Klasse Linuxhint
// definere dataene for mat
Klassemat
public int food_price get; sett;
offentlig strengnavn get; sett;
offentlig int -mengde get; sett;
public String City get; sett;
statisk offentlig tomrom main ()
// lage data
ListFirst_list = new List ();
// Legg til verdier
FIRST_LIST.Legg til (ny mat mat_price = 300, name = "vegtables", mengde = 1, city = "california");
FIRST_LIST.Legg til (ny mat Food_Price = 34, name = "frukt", mengde = 4, city = "california");
FIRST_LIST.Legg til (ny mat mat_price = 100, name = "sopp", mengde = 2, city = "nepal");
FIRST_LIST.Legg til (ny mat mat_price = 564, name = "vegtables", kvantitet = 10, city = "guntur");
FIRST_LIST.Legg til (ny mat Food_Price = 500, name = "frukt", mengde = 8, city = "nepal");
FIRST_LIST.Legg til (ny mat mat_price = 764, name = "pulser", mengde = 10, city = "guntur");
FIRST_LIST.Legg til (ny mat mat_price = 400, name = "pulser", mengde = 8, city = "nepal");
Konsoll.WritLine ("---------------------- Faktisk liste ------------------- ------- ");
foreach (var verdi i første_liste)
Konsoll.WritLine (verdi.Food_Price+"->"+Verdi.Navn+"->"+Verdi.Mengde+"->"+Verdi.by);
Konsoll.WritLine ("---------------------- Linq Groupby City ---------------------------------- -------- ");
// gruppere verdiene i byattributtet
var resultat = fra iterator1 i første_listegruppe iterator1 av iterator1.by;
// Vis de grupperte resultatene ved hjelp av foreach -sløyfe
foreach (var jeg i resultat)
foreach (var j i i)
Konsoll.WritLine (J.Food_Price+"->"+J.Navn+"->"+J.Mengde+"->"+J.by);
Konsoll.WritLine ("---------------------- Linq Groupby Navn -------------------------------------------------------------------------------------------------------------------------- -------- ");
// gruppere verdiene i Navn -attributtet
var result2 = fra iterator2 i First_list Group Iterator2 av Iterator2.Navn;
// Vis de grupperte resultatene ved hjelp av foreach -sløyfe
foreach (var i i resultat2)
foreach (var j i i)
Konsoll.WritLine (J.Food_Price+"->"+J.Navn+"->"+J.Mengde+"->"+J.by);
Produksjon:
Forklaring:
1. Først opprettet vi en liste som hadde matdetaljer.
2. Etter det grupperer vi verdier i bykolonnen, så bruker vi for hver loop for å vise de grupperte verdiene.
3. Til slutt grupperer vi verdier i navnekolonnen, så bruker vi for hver løkke for å vise de grupperte verdiene.
Konklusjon
LINQ Groupby -metoden brukes til å gruppere de lignende verdiene i en spesifisert attributt og plassere alle lignende elementer ved hjelp av metode og spørring. Den grupperer alle lignende verdier på ett sted, og vi kan returnere de grupperte verdiene ved hjelp av foreach -sløyfe.