Sono in grado di trovare i duplicati dalle righe DataTable. Come segue:Trova duplicato e unisci record in datatable singolo C#
var groups = table.AsEnumerable()
.GroupBy(r => new
{
c1 = r.Field<String>("Version"),
});
var tblDuplicates = groups
.Where(grp => grp.Count() > 1)
.SelectMany(grp => grp)
.CopyToDataTable();
Ora, voglio unire tutti i record duplicati per singolo e riassumere il suo valore colonna Valore.
Più o meno come segue:
DataTable con duplicati:
Version Value
1 2
2 2
2 1
1 3
2 1
3 2
DataTable senza duplicazioni e valore riassunto .:
Version Value
1 5
2 4
3 2
Sono consapevole di questo legame che fa con l'aiuto della riflessione. http://forums.asp.net/t/1570562.aspx/1
Un altro modo per farlo?
Modifica: Tuttavia, se ho più di due colonne, come cinque colonne e voglio ancora fare la somma sulla colonna Valore e anche bisogno di altri dati di colonne nel sommario resulatabile datatable. Come farlo? Qui ottengo la versione e il valore nel mio risultato DataTable. Voglio anche altre colonne con valori. Come segue:
Versione col1 col2 Valore
1 A A 2
2 B B 2
2 B B 1
1 A A 3
2 B B 1
3 C C 2
should't esso essere 'g.Sum (x => x.Value)' invece di 'g.Count'? – Spontifixus
@Spontifixus: hai ragione, modificato –
Right @Spontifixus. L'ho modificato e funziona. Tuttavia, se ho più di due colonne, come cinque colonne e voglio ancora fare la somma sulla colonna Valore e ho bisogno anche di altri dati di colonne nel sommario resulatabile datatable. Come farlo? Qui ottengo la versione e il valore nel mio risultato DataTable. Voglio anche altre colonne con valori. –