2015-06-19 80 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

非常感谢,如果可以的话,我会赞成,但我需要更多的声誉。 –