2015-06-19 112 views
0

當我嘗試運行,它說:需要幫助的劊子手C#

System.Collections.Generic.List」不包含定義‘長度’,沒有擴展方法‘長度’接受第一個參數可以找到類型'System.Collections.Generic.List'(是否缺少使用指令或程序集引用?)

這指向以'3'情況寫入的代碼。我已經使用谷歌,並試圖在書中閱讀,但我似乎無法找到一個解決方案。

static void Main (string[] args) 
    {   
     char meny;// För att kunna göra menyval.    
     string s;// Ordet som spelaren kommer skriva in. 
     List<string> dinaord = new List<string> { "Varg", "Apor", "Besvärad", "Människor", "Komplettering" };// Array för spelarens ord, samt mina egna. 
     bool visameny = true; // visameny blir tilldelat true. 

     Console.WriteLine("\n\t\tHejsan, och välkommen till Hänga Gumma!"); 

     do// Återvänder till menyn så länge den är true. 
     { 
      Console.WriteLine("\n\n 1) Lägga till ord"); 
      Console.WriteLine("\n 2) Lista alla ord"); 
      Console.WriteLine("\n 3) Spela"); 
      Console.WriteLine("\n 4) Avsluta");// Visar 1-4, samt vad varje nummer leder till. 
      Console.WriteLine("\n\n Välj 1-4"); 
      meny = Convert.ToChar(Console.ReadLine());// Konverterar det spelaren väljer till "meny". 

      switch (meny)// Switchen börjar. 
      { 
       case '1': 
        Console.Write("\nLägg till ord:"); 
        dinaord.Add(Console.ReadLine());// Låter spelaren slå in ord och sparar dem i en array. Ändrade till en Console.ReadLine.                  

        break; 

       case '2':// Mina egna ord. 

        dinaord.Sort();// Flyttade sorteringen hit, för att få den till att sortera orden när man trycker två. 
        Console.Write("\nHär visas dina ord!\n"); 
        int i = 1; 
        foreach (string ord in dinaord)// Löste detta med hjälp av dina anvisningar att titta igenom kapitlet igen och försöka olika koder. 
        { 
         Console.Write(ord + " ");// Här visas spelarens ord, (om dem har lagt till några) samt mina egna ord. 
        } 

        break; 

       case '3':// Här ska spelet starta. 

        int antalchanser;// antalchanser görs om till en int för att senare jämföras. 
        int felgissningar = 0;// felgissningar görs om en till en int, och får värdet 0, för att senare jämföras med antalchanser och kommer att leda till att spelet avslutas om felgissningar blir lika med antalchanser. 
        Console.Write("\nHur många fel får man ha?"); 
        antalchanser = Convert.ToInt32(Console.ReadLine());// Gör så att det spelaren skriver in blir till "antalchanser". 
        Console.Write("\nFelgissningar:0/" + antalchanser);// Visar antal felgissningar. 

        Console.Write("\nGissa ett ord:"); 
        s = Convert.ToString(Console.ReadLine());// Ordet som ska sökas efter. 

        int o; 
        for (o = 0; o < dinaord.Length; o++)// Söker igenom arrayn dinaord och jämförs med det spelaren har skrivit in. 
         if (dinaord[o] == s) 
         { 
          Console.WriteLine("\nGrattis du gissa rätt!" + dinaord[o] + 
           " var det hemliga ordet "); 
          break;// Bryter satsen om dem gissar rätt. 
         } 

        if (o == dinaord.Length) 

        { 
         Console.WriteLine("\nDu gissa fel!");       
        felgissningar++;// Lägger till +1 på felgissningar om dem gissar fel. 
        } 

        if (felgissningar == antalchanser)// Jämför felgissningar med antalchanser. 

        {  
         Console.WriteLine("\nDu har inga chanser kvar! Tack för att du spelade Michaels ofulländade version!"); 
         visameny = false;// visameny blir false, avbryter spelet om antalchanser tar slut. 
        } 

        if (felgissningar != antalchanser)// Kollar om felgissningar inte är lika med antalchanser. 
        { 
         Console.WriteLine("\nGissa igen:"); 
        } 
         break; 

       case '4': 
        { 
         Console.WriteLine("\nSpelet avslutas!"); 
         Console.WriteLine("\nTack för att du spelade Michael´s ofulländade version!"); 
         visameny = false;// visameny blir false, avbryter spelet. 
        } 
         break; 

       default:// Ifall annat än 1-4 knappas in, visas detta. 
         Console.WriteLine("\n\tDu får inte trycka på den!" + 
         "\n\tAnvänd bara det som står på skärmen: 1-4"); 
         break; 


      }// Switchen slutar. 



     } while (visameny == true);// Fortsätter loopen så länge den är true. 
    } 
} 

}

回答

3

List不是數組。本機陣列(string[])具有Length屬性,但List<T>具有Count屬性。所以你只需要:

for (o = 0; o < dinaord.Count; o++) 
+1

非常感謝,如果可以的話,我會滿意,但我需要更多的聲譽。 –

+0

@MikeEller你仍然應該能夠將答案標記爲「已接受」,並且這會給你和答案者兩種聲望。 – crashmstr

+0

@crashmstr我對此很陌生,我該怎麼做? –

2

猜你在找dinoard.Count而不是長度。你也可以像使用'2'一樣使用foreach,這看起來很舒服。

+0

非常感謝,如果可以的話,我會贊成,但我需要更多的聲譽。 –