-1
votes

Comment obtenir un compte après avoir fait une linq.groupby c #

Comment puis-je obtenir le nombre d'éléments de Linqgroups ci-dessous. Je veux le montrer dans une déclaration de débogage / trace. Le code est utilisé pour me permettre de créer un bon de commande par fournisseur. La question est donc de savoir combien il existe de nombreux fournisseurs ou commandes d'achat après avoir exécuté la clause .Groupby.

    List<webPOInfo> lstPOInfo = new List<webPOInfo>();

    int poItemsCount = 0; 
    foreach (var item in linqQuery)
    {
        poItemsCount++; 
        webPOInfo info = new webPOInfo(item.qVendorName, item.qSku, item.qTransID, item.qSize, item.qQty);
        lstPOInfo.Add(info);
    }


    //loop through each vendor name group
    var linqGroups = lstPOInfo.GroupBy(x => x.VendorName);

    int countLinkGroups = linqGroups.Count<webPOInfo>;  // Error here 


3 commentaires

Le message d'erreur vous dit ce qui ne va pas: Avez-vous l'intention d'appeler la méthode? Nous invoquons des méthodes en C # à l'aide de la méthode Méthode (Arguments) SYNTAX. Pouvez-vous dire un peu pourquoi le message d'erreur n'était pas clair? Je concevons des messages d'erreur de compilateur pour gagner leur vie et il est utile de savoir comment ils peuvent être améliorés.


Je ne savais pas que c'était une méthode ici, semble généralement être une propriété, et l'IntelliSense a déclaré compter <> ce qui me passe à travers moi.


C'est utile, merci. FYI Il n'y a pas de propriétés génériques en C #; Si vous voyez quelque chose alors quelque chose doit être un type ou une méthode. En outre, le message d'erreur indique "le nombre de groupes de méthodes" et "Avez-vous l'intention d'invoquer la méthode?" Les deux sont destinés à être un indice fort pour vous que c'est une méthode.


3 Réponses :


1
votes

Vous effectuez le nombre de comptes sur le groupement lui-même comme xxx


1 commentaires

D'accord, alors comment puis-je obtenir le compte dans une variable en utilisant cette technique?



2
votes

Compte est une méthode de sorte que votre dernière ligne devrait ressembler à ceci: xxx

https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.count?view=netFramework -4.8


0 commentaires

1
votes

Vous pouvez utiliser compteur () méthode d'extension directement pour les groupes xxx

qui vous donnera la quantité de fournisseurs, espérons que cela peut vous aider


1 commentaires

Ok, intéressant que c'est une méthode ici, mais généralement une propriété. Intellisense montre compter <>. Au lieu d'utiliser "Var LinkGroups", quelle classe spécifique pourrais-je mettre à la place de "var"?