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