2016-10-27 7 views
-7

Ich bekomme zwei Fehler "Kann nicht zu 'C' zuweisen, weil es eine 'foreach Iterationsvariable" und "Syntaxfehler, Wert erwartet" Ich weiß nicht wirklich, wo mein Fehler ist? Ich kann frische Augen bekommen, um meinen Mangel zu erkennen.Ich kann nicht finden, wo meine Fehler sind

int[] numDictionary = new int[] { 5, 5, 5, 7, 7, 7, 9, 7, 9, 9, 9, 1 }; 

IDictionary<int, int> count = new SortedDictionary<int, int>();  
//count = new SortedDictionary<int, int>(); 
//int SortedDictionary = count; 

foreach (var c in numDictionary) 
{ 
    if (c > 0) 
    { 
     count[c] = count.[c] + 1; 
    } 

} 
//return count.ToString(); 
Console.WriteLine(count); 
Console.ReadKey(); 
+1

'count' ist ein Wörterbuch. 'c' ist ein int. Kann "count" nicht zu "c" zuordnen. Wie der Fehler sagt, ist es auch eine Schleifenvariable. Sie können es nicht ändern: das ist die Aufgabe der Schleife. –

+1

Und Sie erstellen zweimal "count". Und was soll "count [c] = c [] + 1" tun? Vielleicht solltest du ein paar Tutorials lesen. Informieren Sie sich über Typen, Arrays usw. –

+0

Es ist nicht wirklich klar, was Sie aus Ihrer Beschreibung oder dem von Ihnen geposteten Code machen möchten. – Drefetr

Antwort

0

In einem foreach Schleifen Sie greifen nicht den Inhalt der Sammlung durch einen Index. Sie adressieren die Sammlungselemente direkt mit der von Ihnen definierten Iterationsvariablen (in diesem Fall var c).

Console.WriteLine("Contents of numDictionary: "); 
foreach (var c in numDictionary) 
{ 
    Console.Write(c); 
} 

Eine Iterationsvariable kann jedoch nicht geändert werden - sie kann nur gelesen werden. Wenn Sie über das Array iterieren und den Inhalt ändern möchten, verwenden Sie eine for-Schleife.

int[] numDictionary = new int[] { 5, 5, 5, 7, 7, 7, 9, 7, 9, 9, 9, 1 }; 

for (int i = 0; i < numDictionary.Length; ++i) 
{ 
    numDictionary[i] = numDictionary[i] + 1; 
} 

Sie können mehr über die foreach Aussage herausfinden und wie sie sich auf die for Aussage in this Microsoft Development Network article.

Verwandte Themen