2010-03-25 6 views
0

j'ai un dictionnaire, que je triés par valeur avec LINQ, comment puis-je obtenir les valeur triées du résultat trié i obtenirComment obtenir des valeurs après le dictionnaire de tri des valeurs avec LINQ

c'est ce que je l'ai fait loin

Dictionary<char, int> lettersAcurr = new Dictionary<char, int>();//sort by int value 
var sortedDict = (from entry in lettersAcurr orderby entry.Value descending select entry); 

au cours de la mise au point que je peux voir que sortedDic a une KeyValuePar, mais je ne peux pas les accès depuis la

grâce à l'aide

Répondre

1

sortedDict est IEnumerable<KeyValuePair<char, int>> itérer

0

Juste itérer dessus.

foreach (var kv in sortedDict) 
{ 
    var value = kv.Value; 
    ... 
} 
0

Si vous voulez juste les valeurs char vous pouvez modifier votre requête comme:

var sortedDict = (from entry in lettersAcurr orderby entry.Value descending select entry.Key); 

qui vous donnera un résultat de IEnumerable<char>

Si vous voulez dans un dictionnaire de nouveau vous pourriez être tenté de

var q = (from entry in lettersAcurr orderby entry.Value descending select entry.Key).ToDictionary(x => x); 

mais faire nu dans Notez que le dictionnaire ne sera pas trié, car Dictionary(Of T) ne maintiendra pas l'ordre trié.

Questions connexes