LinQ & DataTable Groupe En Question en C#
J'ai un DataTable et magasins de 4 colonnes (StockCardCode,Expliquer,la Quantité,la BranchCode), et Im regrouper avec une LinQ. Le Code est ma clé pour l'utilisation de Group By. Quand j'écris ma requête, je ne peux utiliser les 2 colonnes dans l'instruction select, comment puis-je afficher toutes les colonnes dans cette requête? Cette requête me renvoie 2 colonne. Je ne peux pas utiliser x.Champ("Expliquer") dans ma requête par exemple.
var query = from s in incoming.AsEnumerable()
group s by s.Field<string>("Stock Card Code")
into grp
orderby grp.Key
select new { StockCardCode = grp.Key, Quantity = grp.Sum(r => r.Field<decimal>("Quantity")) };
entrants: DataTable
OriginalL'auteur Serkan Hekimoglu | 2010-12-17
Vous devez vous connecter pour publier un commentaire.
Puisque vous êtes regroupement par StockCardQuote, le "Expliquer" la valeur va être tous de la Expliquer les valeurs de lignes avec le même StockCardQuote -- il va être un
IEnumerable<T>
, afin de s'Expliquer, c'est unstring
, vous aurezIEnumerable<string>
.À l'inclure dans votre
select
déclaration, il suffit de faireQuelle chaîne de caractères que vous recherchez? Pour tout
StockCardCode
il peut y avoir plusieursExplain
valeurs. C'est peut-être pas de regroupement que vous voulez faire...en fait même stock de codes de carte ont même expliquer
Ensuite, vous pouvez faire comme Saeed suggérée: prendre le premier de la
IEnumerable<string>
et obtenir leExplain
de que:Explain = grp.First().Select(r => r.Field<string>("Explain"))
OriginalL'auteur Jay
Il n'y a aucun élément unique dans votre groupe, mais vous pouvez sélectionner le premier élément et afficher les champs:
OriginalL'auteur Saeed Amiri