donne ces résultats: strong> p> Argentina has 3 customers: 1. Cactus Comidas para llevar, 2. Océano Atlántico Ltda., 3. Rancho grande
...
3 Réponses :
customers.ToList().ForEach(g => Console.WriteLine("{0} has {1} customers: {2}",
g.Country,
g.Customers.Count(),
string.Join(", ",
g.Customers.Select((x, i) => i + ". " + x.CompanyName).ToArray())));
Très intéressant, cela fonctionne, où est-ce que je suis incrémenté en fait?
@Edward: Jetez un coup d'œil à cela. Il explique la sélection de Linq avec un paramètre Lambda à deux paramètres. weblogs.asp.net/fmarguerie/archive/2008/11/10/...
@Edward, je suis incrémenté en interne dans la méthode de sélection de sélection et la nouvelle valeur est transmise pour chaque valeur.
Génial, jamais connu à ce sujet! Merci!!
Essayez de faire un int x = 0; avant votre relevé LINQ. Ensuite, dans, imprimé (x ++). Tostring (). P>
Cela fera x une fermeture. P>
Très pratique, en particulier dans mon projet où j'ai besoin de compter de 1 et plus.
@ La réponse de Lukeh est meilleure, cependant, n'est-ce pas? Vous pouvez simplement utiliser (i + 1) code> au lieu de i code> donc être basé sur 1.
une meilleure réponse? Peut-être, mais aussi visuellement plus complexe. Pour mon projet non-base de données, à l'aide d'une grande structure Linq avec beaucoup de Nouveaux xelement code>, le .Sélectionnez code> n'est pas très pratique et les autres réponses sont plus applicables. Peut-être à cause d'un manque de compréhension de Linq ...
Vous pouvez le faire pour rechercher la valeur d'index itérateur:
var customers = from cust in Customers //Get Current Index let currIndex = Customers.IndexOf(cust) //You can then make use of the index in the Variable currIndex
C'est un peu à l'envers pour faire une recherche de chaque itération, mais pour de petits projets ce n'est pas un problème du tout. Dans mon projet actuel, je dois faire une liste des pièces jointes de messagerie et le nombre d'articles est très faible, rarement fini, par exemple, 5
Vous pouvez utiliser la méthode Linq "Compter ()" avec une Lambda. Donc, vous pouvez faire quelque chose comme: Var CustomerCount = clients.count (C => C.CountryID == {CntryID});