Jestem w stanie znaleźć duplikaty z wierszy DataTable. Jak następuje:Znajdź duplikat i scal rekord w jeden datatable 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();
Teraz chcę scalić wszystkie duplikaty rekordów w celu jedno- i podsumować to wartość kolumny Wartość.
Prawie jak następuje:
DataTable z duplikaty:
Version Value
1 2
2 2
2 1
1 3
2 1
3 2
DataTable bez duplikatów i wartość sumuje .:
Version Value
1 5
2 4
3 2
Jestem świadomy o tym linkiem, który robi to z pomoc refleksji. http://forums.asp.net/t/1570562.aspx/1
Inna metoda na zrobienie tego?
Edycja: Edycja: Jednak, jeśli mam więcej niż dwie kolumny, takich jak pięć kolumn i nadal chcę zrobić sumę w kolumnie wartości, a także potrzebują innych kolumn danych w podsumowaniu datowalne resulatant. Jak to zrobić? Tutaj otrzymuję wersję i wartość w moim wyniku DataTable. Chcę również inne kolumny z wartościami. Jak następuje:
Wersja Col1 COL2 Wartość
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 go być 'g.Sum (x => x.Value)' zamiast 'g.Count'? – Spontifixus
@ Spontifixus: masz rację, edytuj –
Right @Spontifixus. Zmodyfikowałem go i działa. Jednakże, jeśli mam więcej niż dwie kolumny, takie jak pięć kolumn i nadal chcę wykonać sumę w kolumnie Wartość, a także potrzebne są inne dane kolumn w podsumowujących zbiorczych datowalnych. Jak to zrobić? Tutaj otrzymuję wersję i wartość w moim wyniku DataTable. Chcę również inne kolumny z wartościami. –