Kezdőoldal » Számítástechnika » Programozás » C# DataTable a group-olni...

C# DataTable a group-olni kívánt oszlopok nevei listában vannak. Hogyan lehet megvalósítani?

Figyelt kérdés

Feladat egy olyan groupby-os lekérdezésre, ahol dinamikusan tudnám megadni a csoportosításban résztvevő oszlopneveket. Ebben kérem segítségetek!


Egy összeállított példa:

...

//Példa groupolni kívánt oszlopnevekre (ez a program használata során változik):

List<string> cols = new List<string>() { "cElso", "cHarmadik" };

PéldaProgi(cols);

...


public void PéldaProgi(List<string> cols) {

DataTable table = new DataTable();

table.Columns.Add("cElso", typeof(System.String));

table.Columns.Add("cMasodik", typeof(System.String));

table.Columns.Add("cHarmadik", typeof(System.String));


//Egy statikus megoldás. Itt nem tudom a group-nál a listát használni az oszlopnevek megadására:

var q = from elem in table

group elem by new { Elso = elem["cElso"], Harmadik = elem["cHarmadik"] } into g

select new { Masodik = g.First().Field<string>("cMasodik") };

}



2019. okt. 30. 23:04
 1/2 anonim ***** válasza:

Csak egy jo tanacs a linq-hoz: inkabb a method syntaxot hasznald a query syntax helyett. Szerintem sokkal atlathatobb es ha mivel meg lathatoan uj vagy, ezert legalabb nem fogod keverni az sql-el.


Ha jol ertem valami olyasmit akarsz, hogy a csoportositasban ne egy statikus select eredmenye legyen, igaz? Ehhez eleg magat a csoportot selectelned.


peldaIEnumerable.GroupBy(p => p.GroupByProperty).Select(g => new { g.Key, GroupWithAllProperty = g });


Aztan ha hasznalni is akarod az adatot es nincsen benne rengeteg adat, akkor a vegere meg nyomsz egy .ToList()-et.


Erre gondoltal? A fenti leiras alapjan nem voot eleg egyerteomu, hogy pontosan mit szeretnel.

2019. okt. 31. 06:51
Hasznos számodra ez a válasz?
 2/2 A kérdező kommentje:

#1 Köszönöm válaszod!

Nemcsak a select-ben lévő, hanem a group-ban megadott csoportosítást is dinamikussá szeretném tenni (oszlopok száma / neve változhat).

Fenti példámban, az oszlopok neveit tartalmazó lista tartalma változhat menet közben.


Elnézést a következő rossz példámért, de így lehet könnyebben látható mit is szeretnék:


var q = from elem in table.AsEnuberable()

group elem by elem[cols] //? listában megadott oszlopnevek alapján csoportosítson

into g

select new { Key = g.Key, AllProperty = g };


Találtam rá egy megoldást, ha van egyszerűbb megoldás, szívesen fogadom:

[link]

2019. okt. 31. 11:48

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!