2012-06-28 1 views
0
foreach (string myKey in mySortedList.Keys) 

pourquoi il dit ne contient pas de clés de définition et pas de clés d'extension. puis-je savoir pourquoi? J'ai déjà using System.Collections.Generic;aucune définition Clés C#

+4

ne ressemble pas '' mySortedList' est en fait SortedList <> '- quel est-il, alors? – SimpleVar

Répondre

0

Soit mySortedList n'est pas un SortedList ou il n'a pas été démonté de son état plus primitif.

var list = mySortedList as SortedList; 

foreach (string myKey in list.Keys) { ... } 

http://msdn.microsoft.com/en-us/library/yz2be5wk.aspx

+0

il n'y a rien à faire avec l'implémentation triée. Ce sont les clés qui causent le problème. même im faire d'autres codes par exemple prendre la clé pour la liste en utilisant les touches, affiche toujours, il ne contient pas la définition des clés .. s'il vous plaît aidez-moi. Y at-il quelque chose à voir avec ma bibliothèque? Comment résoudre ce problème? –

+0

a 'Liste ' n'est pas un 'SortedList' ... – xandercoded

+0

quel est le type *** original *** de' mySortedList'? – xandercoded

2

quel que soit mySortedList est en réalité, il n'a pas de propriété Keys. Le compilateur vous l'a dit beaucoup. Donc:

  1. Détermine le type de mySortedList.
  2. Accédez à MSDN, consultez la documentation.
  3. Profit.
0

Peut-être qu'un exemple vous aidera. Dans le code ci-dessous, le premier foreach compile, mais le second ne le fait pas. Les deux sont basés sur la même instance d'une SortedList, mais la seconde le convertit en un type différent, qui ne prend pas en charge les clés.

 SortedList<string, string> sorted = new SortedList<string, string>(); 

     foreach (string s in sorted.Keys) 
      Console.WriteLine(s); 

     IEnumerable stillSorted = sorted as IEnumerable; 

     foreaach (string t in stillSorted.Keys) 
      Console.WriteLine(t); 

Est-ce votre problème? Si vous êtes passé un objet, essayez de jeter vous-même comme dans l'exemple ci-dessous:

 SortedList<string, string> sorted = mySortedList as SortedList<string, string>; 
     if (sorted != null) 
      foreach (string s in sorted.Keys) 
       Console.WriteLine(s);