Une méthode pour compter les occurrences dans une liste
Est-il un moyen simple de compter le nombre d'occurrences de tous les éléments d'une liste dans la même liste en C#?
Quelque chose comme ceci:
using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Collections.Generic;
using System.Linq;
string Occur;
List<string> Words = new List<string>();
List<string> Occurrences = new List<string>();
//~170 elements added. . .
for (int i = 0;i<Words.Count;i++){
Words = Words.Distinct().ToList();
for (int ii = 0;ii<Words.Count;ii++){Occur = new Regex(Words[ii]).Matches(Words[]).Count;}
Occurrences.Add (Occur);
Console.Write("{0} ({1}), ", Words[i], Occurrences[i]);
}
}
InformationsquelleAutor Nona Urbiz | 2009-07-16
Vous devez vous connecter pour publier un commentaire.
Comment quelque chose comme cela ...
Édition par commentaire: je vais essayer de faire cette justice. 🙂
Dans mon exemple, c'est un
Func<int, TKey>
parce que ma liste est ints. Donc, je dis GroupBy comment regrouper mes articles. La touche Func prend un entier et renvoie la clé de mon groupement. Dans ce cas, je vais obtenir unIGrouping<int,int>
(un regroupement d'entiers à clé par un entier (int). Si je l'ai changé pour (i => i.ToString()
) par exemple, je serais d'incrustation mon groupement par une chaîne. Vous pouvez imaginer un moins trivial exemple que l'incrustation par "1", "2", "3" ... peut-être que je fais une fonction qui retourne "un", "deux", "trois" être un de mes clés ...Donc, c'est une Fonction qui prend un int et de retourner une chaîne de caractères, tout comme ...
Mais, puisque la question initiale appelé pour connaître l'original de la liste de valeur et c'est le comte, j'ai simplement utilisé un entier à la clé de mon entier regroupement de faire mon exemple plus simple.
var g = l1.GroupBy( i => i ).OrderByDescending(group => group.Count());
.Ceci est pris à partir de l'un des exemples dans le linqpad
Vous pouvez faire quelque chose comme ceci à compter à partir d'une liste de choses.
De compter un seul élément
À l'extérieur de la boucle est boucler sur tous les mots de la liste. Il n'est pas nécessaire et peut vous causer des problèmes. L'enlever et cela devrait fonctionner correctement.