Linq Groupby

Linq Groupby
W C#, jeśli chcesz grupować wszystkie podobne wartości w jednym miejscu, LINQ w C# zapewnia metodę grupy ().

Metoda grupy LINQ jest używana do grupowania podobnych wartości w określonym atrybucie i miejscu ze wszystkimi podobnymi elementami.

Składnia metody:

źródło sygnału wejściowego.Grupa (element => element.atrybut);

Składnia zapytania:

od iteratora w grupie input_source iterator.atrybut

Gdzie input_source jest źródłem danych (lista), a iterator jest używany do iteracji elementów obecnych w Input_Source.

Przykład 1:

Utworzymy listę, która przechowuje szczegóły żywności i zgrupujemy wartości na liście opartą na różnych atrybutach.

za pomocą systemu;
za pomocą systemu.Linq;
za pomocą systemu.Kolekcje.Ogólny;
// Utwórz klasę - Linuxhint
Klasa Linuxhint

// Zdefiniuj dane dotyczące żywności
Jedzenie klasowe

public int Food_Price get; ustawić;
public String Nazwa get; ustawić;
public int Illty get; ustawić;
public String City get; ustawić;

static public void main ()
// Utwórz dane
ListFirst_List = new List ();
// Dodaj wartości
First_list.Add (new Food Food_Price = 300, name = "vegtables", ilość = 1, city = "california");
First_list.Add (new Food Food_Price = 34, name = "owoce", ilość = 4, miasto = "california");
First_list.Add (new Food Food_Price = 100, name = „grzyb”, ilość = 2, miasto = „nepal”);
First_list.Add (new Food Food_Price = 564, name = "Vegtables", ilość = 10, miasto = "guntur");
First_list.Add (new Food Food_Price = 500, name = "owoce", ilość = 8, city = "nepal");
First_list.Add (new Food Food_Price = 764, name = "pulses", ilość = 10, city = "guntur");
First_list.Add (new Food Food_Price = 400, name = "pulses", ilość = 8, miasto = "nepal");
Konsola.WriteLine ("-------------------------- Rzeczywista lista ------------------- ------- ”);
foreach (wartość var ​​w pierwszej liście)

Konsola.Writeline (wartość.Food_price+"->"+wartość.Nazwa+"->"+wartość.Wartość ilości+"->"+.miasto);

Konsola.WriteLine ("-------------------------- Linq Groupby City ------------------ -------- ”);
// Grupowanie wartości w atrybucie miasta
var wynik = First_list.Grupa (element => element.miasto);
// wyświetl zgrupowane wyniki za pomocą pętli foreach
Foreach (var I w wyniku)

Foreach (var J in i)

Konsola.Writeline (j.Food_price+"->"+j.Nazwa+"->"+j.Ilość+"->"+j.miasto);


Konsola.WriteLine ("--------------------------- Linq Nazwa grupy ------------------ -------- ”);
// Zmień wartości w atrybucie nazwy
var result2 = First_list.Grupa (element => element.nazwa);
// wyświetl zgrupowane wyniki za pomocą pętli foreach
Foreach (var I w wyniku 2)

Foreach (var J in i)

Konsola.Writeline (j.Food_price+"->"+j.Nazwa+"->"+j.Ilość+"->"+j.miasto);



Wyjście:

Wyjaśnienie:

1. Najpierw stworzyliśmy listę, która zawierała szczegóły jedzenia.

2. Następnie grupujemy wartości w kolumnie miasta. Wreszcie używamy dla każdej pętli do wyświetlania zgrupowanych wartości.

3. Na koniec grupujemy wartości w kolumnie nazwy, a następnie używamy dla każdej pętli do wyświetlania zgrupowanych wartości.

Przykład 2:

Utworzymy listę, która przechowuje szczegóły żywności i zgrupujemy wartości na liście na podstawie różnych atrybutów za pomocą składni zapytania.

za pomocą systemu;
za pomocą systemu.Linq;
za pomocą systemu.Kolekcje.Ogólny;
// Utwórz klasę - Linuxhint
Klasa Linuxhint

// Zdefiniuj dane dotyczące żywności
Jedzenie klasowe

public int Food_Price get; ustawić;
public String Nazwa get; ustawić;
public int Illty get; ustawić;
public String City get; ustawić;

static public void main ()
// Utwórz dane
ListFirst_List = new List ();
// Dodaj wartości
First_list.Add (new Food Food_Price = 300, name = "vegtables", ilość = 1, city = "california");
First_list.Add (new Food Food_Price = 34, name = "owoce", ilość = 4, miasto = "california");
First_list.Add (new Food Food_Price = 100, name = „grzyb”, ilość = 2, miasto = „nepal”);
First_list.Add (new Food Food_Price = 564, name = "Vegtables", ilość = 10, miasto = "guntur");
First_list.Add (new Food Food_Price = 500, name = "owoce", ilość = 8, city = "nepal");
First_list.Add (new Food Food_Price = 764, name = "pulses", ilość = 10, city = "guntur");
First_list.Add (new Food Food_Price = 400, name = "pulses", ilość = 8, miasto = "nepal");
Konsola.WriteLine ("-------------------------- Rzeczywista lista ------------------- ------- ”);
foreach (wartość var ​​w pierwszej liście)

Konsola.Writeline (wartość.Food_price+"->"+wartość.Nazwa+"->"+wartość.Wartość ilości+"->"+.miasto);

Konsola.WriteLine ("-------------------------- Linq Groupby City ------------------ -------- ”);
// Grupowanie wartości w atrybucie miasta
var wynik = z iterator1 w grupie pierwszej_list iterator1 przez iterator1.miasto;
// wyświetl zgrupowane wyniki za pomocą pętli foreach
Foreach (var I w wyniku)

Foreach (var J in i)

Konsola.Writeline (j.Food_price+"->"+j.Nazwa+"->"+j.Ilość+"->"+j.miasto);


Konsola.WriteLine ("--------------------------- Linq Nazwa grupy ------------------ -------- ”);
// Zmień wartości w atrybucie nazwy
var wynik2 = z iterator2 w grupie pierwszej_list iterator2 przez iterator2.nazwa;
// wyświetl zgrupowane wyniki za pomocą pętli foreach
Foreach (var I w wyniku 2)

Foreach (var J in i)

Konsola.Writeline (j.Food_price+"->"+j.Nazwa+"->"+j.Ilość+"->"+j.miasto);



Wyjście:

Wyjaśnienie:

1. Najpierw stworzyliśmy listę, która zawierała szczegóły jedzenia.

2. Następnie grupujemy wartości w kolumnie miasta, a następnie używamy dla każdej pętli do wyświetlania zgrupowanych wartości.

3. Na koniec grupujemy wartości w kolumnie nazwy, a następnie używamy dla każdej pętli do wyświetlania zgrupowanych wartości.

Wniosek

Metoda grupy LINQ jest używana do grupowania podobnych wartości w określonym atrybucie i umieszczenia wszystkich podobnych elementów za pomocą metody i zapytania. Grupuje wszystkie podobne wartości w jednym miejscu i możemy zwrócić zgrupowane wartości za pomocą pętli foreach.