L'utilisation de Linq to GroupBy et Somme datatable
Salut, j'ai une Table comme ceci:
Id Quantité 1 Quantité 2 Montant 3 1 2 2 2 12 4 6 4 12 6 6 5 22 7 2 1 22 7 2 2
Je dois obtenir ma datatable comme ceci:
Id Quantité 1 Quantité 2 Montant 3 1 2 2 2 12 10 12 9 22 14 4 3
J'ai d'abord essayé de le faire dans une méthode anonyme mais j'ai besoin de retourner à une autre classe qui ne peut pas être fait avec la méthode anonyme.
Ma deuxième tentative pour ce faire, il peut être retourné:
DataTable ddt = dt.AsEnumerable()
.Sum(g => g.Field<int>("Amount 1"))
.GroupBy(g => new { Col1 = g["ID"] })
.Select(g => g.OrderBy(r => r["ID"]).First())
.CopyToDataTable();
Ce code certainement l'habitude de compiler mais Toute aide/conseils si possible serait vraiment apprécié. Je suis très nouveau à linq.
Double Possible de l'Utilisation de LINQ pour regrouper des données provenant de DataTable
google peut être votre meilleur ami si il est utilisé correctement
Vous devez faire le groupe en premier, puis dans votre sélection que vous souhaitez faire chaque somme.
google peut être votre meilleur ami si il est utilisé correctement
Vous devez faire le groupe en premier, puis dans votre sélection que vous souhaitez faire chaque somme.
OriginalL'auteur Leon Winston | 2016-06-01
Vous devez vous connecter pour publier un commentaire.
Vous pouvez
GroupBy
d'abord, puis de projet, les groupes deDataRow
s, puis créer leDataTable
à l'aide deCopyToDataTable
extension:OriginalL'auteur Arturo Menchaca
Vous de faire vos appels de commande. Le code ci-dessous l'habitude de mettre les données dans une table, mais il va vous donner les données que vous pourriez mettre dans une table facilement.
OriginalL'auteur pquest
Cela fonctionne pour moi. Une légère Modification de l'Arturo code pour vous aider avec la fonte des questions si vous avez des valeurs décimales et l'utilisation d'un datatable comme un datatable pas une variable. (Notez que r[15] est la colonne sera de sommation)
OriginalL'auteur Wesley Nightingale