C# 从控制台C添加列表项

C# 从控制台C添加列表项,c#,list,C#,List,我正在制作一个非常简单的刽子手游戏,使用2个文件。Program.cs和WordList.cs 菜单如下: 加词 显示单词列表 玩 出口 我想知道如何在控制台上写一个单词进入单词列表。因此,如果我选择菜单项1,我应该能够输入最多5个单词,并使他们进入单词列表。 真的希望有人能帮我,因为我有点迷路了。我需要说C的初学者:我还没有弄清楚程序是如何搜索每个字母的,但是先处理这个问题 下面是program.cs中的代码 using System; using System.Collections.Gen

我正在制作一个非常简单的刽子手游戏,使用2个文件。Program.cs和WordList.cs

菜单如下:

加词

显示单词列表

出口

我想知道如何在控制台上写一个单词进入单词列表。因此,如果我选择菜单项1,我应该能够输入最多5个单词,并使他们进入单词列表。 真的希望有人能帮我,因为我有点迷路了。我需要说C的初学者:我还没有弄清楚程序是如何搜索每个字母的,但是先处理这个问题

下面是program.cs中的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

class Hangman
{
    static void Main()
    {
        Console.ForegroundColor = ConsoleColor.Red;
        Console.Title = "C# Hangman";
        Console.WriteLine("Welcome To C# Hangman!");

        //MENU

        char MenuChoice;       

        Console.Write("\n\t1) Add words");
        Console.Write("\n\t2) Show list of words");
        Console.Write("\n\t3) Play");
        Console.Write("\n\t4) Quit\n\n");

        Console.Write("\n\tChoose 1-4: ");        //Choose meny item
        MenuChoice = Convert.ToChar(Console.ReadLine());

            switch (MenuChoice)
            {
                case '1':

                    break;
                case '2':
                    WordList showing = new WordList();
                    showing.ListOfWords();
                    Console.Write("\n\tList of words\n\n");


                    break;


                case '3':   //Running game

                    int guesses;
                    Console.Write("\n\tHow many faults can you have: ");
                    guesses = Convert.ToInt32(Console.ReadLine());
                    Console.Write("\n\tAwesome, let´s play!\n");


                    String input;
                    bool wrong;
                    int NumberOfTries = 0;


                    do
                    {
                        Console.WriteLine("\n\n\tWrong guesses: " + NumberOfTries + " / " + guesses + "\n");
                        Console.WriteLine("\n\tGuessed letters:\n");
                        Console.WriteLine("\n\tWord:\n");
                        Console.Write("\n\n\tGuess letter: ");
                        input = Console.ReadLine();
                        Console.Write("\n\n\t ");

                        wrong = !input.Equals("t") &&
                              !input.Equals("e") &&
                              !input.Equals("s") &&
                              !input.Equals("t"); 
                        if (wrong)
                        {
                            NumberOfTries++;
                            Console.WriteLine("\n\tWrong letter " + "Try again!");
                        }
                        if (wrong && (NumberOfTries > guesses - 1))
                        {
                            Console.WriteLine("\n\tYou have failed " + guesses + ". End of game!\n");
                            break;
                        }

                    } while (wrong);
                    if (!wrong)
                        Console.WriteLine("\n\tWhohoo!");

                    break;

                case '4':

                    Console.WriteLine("\n\tEnd game?\n\n");
                    break;
            }

    }

}
下面是WordList.cs中的代码

using System;
using System.Collections.Generic;

class WordList
{
    public void ListOfWords()
    {

        List<string> words = new List<string>(); // List

        words.Add("test");         // Contains: test
        words.Add("dog");          // Contains: test, dog
        words.Insert(1, "shit"); // Contains: test, shit, dog

        words.Sort();
        foreach (string word in words) // Display for verification
        {
            Console.WriteLine(word);

        }

}
}
using System;
using System.Collections.Generic;

class WordList
{
    private List<string> words = new List<string>();

    public void ListOfWords()
    {
        words.Add("test");         // Contains: test
        words.Add("dog");          // Contains: test, dog
        words.Insert(1, "shit"); // Contains: test, shit, dog

        words.Sort();
        foreach (string word in words) // Display for verification
        {
            Console.WriteLine(word);

        }

    }

    public void AddWord(string value){
        words.Add(value);
      }
}
您可以使用Console.ReadLine

您可以使用Console.ReadLine


将您的显示声明移到交换机之外,这样扩展您的应用程序

var showing = new WordList();
switch (MenuChoice)
        {
            case '1':
                showing.AddWord(Console.ReadLine())
                break;
            case '2':
                showing = new WordList();
                showing.ListOfWords();
                Console.Write("\n\tList of words\n\n");
并扩展您的单词列表以保留您的单词,并添加一个添加新词的方法

class WordList
{
   private words = new List<string>();
   'keep the constructor but move declaration

   public void AddWord(string word)
   {

    words.Add(word);
   }
下面是WordList.cs中的代码

using System;
using System.Collections.Generic;

class WordList
{
    public void ListOfWords()
    {

        List<string> words = new List<string>(); // List

        words.Add("test");         // Contains: test
        words.Add("dog");          // Contains: test, dog
        words.Insert(1, "shit"); // Contains: test, shit, dog

        words.Sort();
        foreach (string word in words) // Display for verification
        {
            Console.WriteLine(word);

        }

}
}
using System;
using System.Collections.Generic;

class WordList
{
    private List<string> words = new List<string>();

    public void ListOfWords()
    {
        words.Add("test");         // Contains: test
        words.Add("dog");          // Contains: test, dog
        words.Insert(1, "shit"); // Contains: test, shit, dog

        words.Sort();
        foreach (string word in words) // Display for verification
        {
            Console.WriteLine(word);

        }

    }

    public void AddWord(string value){
        words.Add(value);
      }
}

将您的显示声明移到交换机之外,这样扩展您的应用程序

var showing = new WordList();
switch (MenuChoice)
        {
            case '1':
                showing.AddWord(Console.ReadLine())
                break;
            case '2':
                showing = new WordList();
                showing.ListOfWords();
                Console.Write("\n\tList of words\n\n");
并扩展您的单词列表以保留您的单词,并添加一个添加新词的方法

class WordList
{
   private words = new List<string>();
   'keep the constructor but move declaration

   public void AddWord(string word)
   {

    words.Add(word);
   }
下面是WordList.cs中的代码

using System;
using System.Collections.Generic;

class WordList
{
    public void ListOfWords()
    {

        List<string> words = new List<string>(); // List

        words.Add("test");         // Contains: test
        words.Add("dog");          // Contains: test, dog
        words.Insert(1, "shit"); // Contains: test, shit, dog

        words.Sort();
        foreach (string word in words) // Display for verification
        {
            Console.WriteLine(word);

        }

}
}
using System;
using System.Collections.Generic;

class WordList
{
    private List<string> words = new List<string>();

    public void ListOfWords()
    {
        words.Add("test");         // Contains: test
        words.Add("dog");          // Contains: test, dog
        words.Insert(1, "shit"); // Contains: test, shit, dog

        words.Sort();
        foreach (string word in words) // Display for verification
        {
            Console.WriteLine(word);

        }

    }

    public void AddWord(string value){
        words.Add(value);
      }
}

你有一大堆单词

List<string> myList = new List<string>();
如果你愿意的话,可以修剪一下

inputString = inputString.Trim();  // that'll remove the spaces on the front/back of the string
然后您可以将其添加到列表中

myList.Add(inputString);

你有一大堆单词

List<string> myList = new List<string>();
如果你愿意的话,可以修剪一下

inputString = inputString.Trim();  // that'll remove the spaces on the front/back of the string
然后您可以将其添加到列表中

myList.Add(inputString);

由于单词之间用空格分隔,您可以让用户按如下方式输入单词列表: 这是四个单词,你可以很容易地阅读

string input = Console.ReadLine();
// input == "these are four words"
创建列表现在非常简单

string[] words1 = input.Split(new char[] { ' ' }, // Splits the words by space
                             StringSplitOptions.RemoveEmptyEntries);
// words1 = { "these", "are", "four", "words" }
如果您确实需要列表,只需在末尾添加.ToList即可:

List<string> words2 = input.Split(new char[] { ' ' },
                                 StringSplitOptions.RemoveEmptyEntries).ToList();

由于单词之间用空格分隔,您可以让用户按如下方式输入单词列表: 这是四个单词,你可以很容易地阅读

string input = Console.ReadLine();
// input == "these are four words"
创建列表现在非常简单

string[] words1 = input.Split(new char[] { ' ' }, // Splits the words by space
                             StringSplitOptions.RemoveEmptyEntries);
// words1 = { "these", "are", "four", "words" }
如果您确实需要列表,只需在末尾添加.ToList即可:

List<string> words2 = input.Split(new char[] { ' ' },
                                 StringSplitOptions.RemoveEmptyEntries).ToList();


C与Visual C没有关系。将来,当您询问有关C的问题时,应避免使用C标记:PC与Visual C没有关系。将来,当您询问有关C:P的问题时,应避免使用C标记感谢您的回答!但是它只打印出单词,不进入列表……WordList上没有添加方法或等效方法吗?但是如果用户想将DONE添加到单词列表中怎么办;谢谢你的回答!但是它只打印出单词,不进入列表……WordList上没有添加方法或等效方法吗?但是如果用户想将DONE添加到单词列表中怎么办;嗨,我刚试过,但没法用。只是得到一堆错误信息:我总共添加了代码,如果这样可以的话,你可以试试,现在没有编译器。非常感谢你的帮助。我只是再试了一次,仍然有很多错误。第一个是在private words=new List中表示无效令牌“=”;在WordList.cs文件中。更改输入我对另一个单词的更改时,它将运行。但仍然需要一些工作,我改变了输入到其他东西和私人的话=新的名单;列出单词=新列表;错误消失了,但我不确定它是否有效。我输入的单词去哪里了?嗨,我刚试过,但没法用。只是得到一堆错误信息:我总共添加了代码,如果这样可以的话,你可以试试,现在没有编译器。非常感谢你的帮助。我只是再试了一次,仍然有很多错误。第一个是在private words=new List中表示无效令牌“=”;在WordList.cs文件中。更改输入我对另一个单词的更改时,它将运行。但仍然需要一些工作,我改变了输入到其他东西和私人的话=新的名单;列出单词=新列表;错误消失了,但我不确定它是否有效。我要输入的单词去哪里了?谢谢你的帮助!我到底应该在哪里写这段代码?@Karolina-Erm。。。当然,您可以在需要执行代码的任何地方编写代码。当您希望用户在控制台中写入内容时,通常使用ReadLine,而只要设置了输入,就可以在任何地方使用Split。请确保您将字符串[]或列表声明在正确的范围内。对不起,我完全是新手:我试图将string input=Console.ReadLine;在开关选项1下,但我不知道在哪里使用其余的。哪些文件?我收到一条错误消息,称为isput的局部变量已在此范围内定义。我用的是更远的地方…@Karolina我知道你不明白什么是示波器。检测作用域的最简单方法是查找花括号{}。每当您在花括号内声明变量(例如字符串输入)时,该变量仅存在于花括号内以及嵌套在花括号内的任何括号内。现在有一个顽皮的小陷阱:范围不仅限于下面的东西,还扩展到上面的东西。这就是你所犯的错误。ea
最有效的修复方法是更改变量的名称:string inputWords=Console.ReadLine;字符串[]字=输入字。拆分。。。例如,谢谢你的帮助!我到底应该在哪里写这段代码?@Karolina-Erm。。。当然,您可以在需要执行代码的任何地方编写代码。当您希望用户在控制台中写入内容时,通常使用ReadLine,而只要设置了输入,就可以在任何地方使用Split。请确保您将字符串[]或列表声明在正确的范围内。对不起,我完全是新手:我试图将string input=Console.ReadLine;在开关选项1下,但我不知道在哪里使用其余的。哪些文件?我收到一条错误消息,称为isput的局部变量已在此范围内定义。我用的是更远的地方…@Karolina我知道你不明白什么是示波器。检测作用域的最简单方法是查找花括号{}。每当您在花括号内声明变量(例如字符串输入)时,该变量仅存在于花括号内以及嵌套在花括号内的任何括号内。现在有一个顽皮的小陷阱:范围不仅限于下面的东西,还扩展到上面的东西。这就是你所犯的错误。最简单的修复方法是更改变量的名称:string inputWords=Console.ReadLine;字符串[]字=输入字。拆分。。。例如