1 réponse

Meilleure réponse

Vous pouvez regrouper par mots, sélectionner le nombre de chaque groupe (ce que vous faites déjà), puis le transformer en un dictionnaire avec le mot comme clé et le nombre comme valeur :

Dictionary<string, int> wordCounts = myArray
    .GroupBy(word => word)
    .ToDictionary(group => group.Key, group => group.Count());

La méthode pourrait donc être réécrite comme suit :

public static Dictionary<string, int> GetWordCount(string[] myArray)
{
    return myArray?
        .GroupBy(word => word)
        .ToDictionary(group => group.Key, group => group.Count());
}

Et puis l'exemple d'utilisation pourrait être :

var words = new[] {"one", "two", "two", "three", "three", "three"};

foreach (var item in GetWordCount(words))
{
    Console.WriteLine($"{item.Key} = {item.Value}");
}

Sortie

one = 1
two = 2
three = 3
2
Rufus L 10 nov. 2020 à 16:32