Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 限制字符串列表添加_C#_String_List - Fatal编程技术网

C# 限制字符串列表添加

C# 限制字符串列表添加,c#,string,list,C#,String,List,Hi stack overflow用户, 我已经用C#创建了一个功能齐全的刽子手游戏,现在在交作业之前,我正在打磨最后的部分。 我决定创造三种不同的困难“简单”“中等”“困难”,而不是让用户选择生命的数量。 现在进入问题? 是否有功能将单词添加到单词列表中(然后通过一种方法随机选择)?我想限制用户添加到单词列表中的单词的最小和最大长度。 下面是我的词表类 using System; using System.Collections.Generic; class WordList { p

Hi stack overflow用户, 我已经用C#创建了一个功能齐全的刽子手游戏,现在在交作业之前,我正在打磨最后的部分。
我决定创造三种不同的困难“简单”“中等”“困难”,而不是让用户选择生命的数量。
现在进入问题?
是否有功能将单词添加到单词列表中(然后通过一种方法随机选择)?我想限制用户添加到单词列表中的单词的最小和最大长度。
下面是我的词表类

using System;
using System.Collections.Generic;

class WordList
{
    public static list <string>word = new list<string>();

    public void Showwordlist()
    {
        word.sort();
        foreach (string word in words)
        {
            console.WriteLine("- " + word);
        }
    }

    public void Addwords(string input)
    {
        word.add(input);
    }
}
使用系统;
使用System.Collections.Generic;
类词表
{
公共静态列表字=新列表();
public void Showwordlist()
{
word.sort();
foreach(单词中的字符串)
{
console.WriteLine(“-”+字);
}
}
公共void Addwords(字符串输入)
{
添加(输入);
}
}

添加检查,查看其是否满足最小长度,是否小于最大长度:

private int minimumLength = 4;
private int maximumLength = 20;

public void Addwords(string input)
{
    if(input.Length >= minimumLength && input.Length <= maximumLength)
        word.add(input);
    else
        MessageBox.Show("Word length must be between " + minimumLength + 
                         @" and " maximumLength + " characters");
}
private int minimumLength=4;
私有int最大长度=20;
公共void Addwords(字符串输入)
{

如果(input.Length>=minimumLength&&input.Length=
添加检查,查看其是否满足最小长度且小于最大长度:

private int minimumLength = 4;
private int maximumLength = 20;

public void Addwords(string input)
{
    if(input.Length >= minimumLength && input.Length <= maximumLength)
        word.add(input);
    else
        MessageBox.Show("Word length must be between " + minimumLength + 
                         @" and " maximumLength + " characters");
}
private int minimumLength=4;
私有int最大长度=20;
公共void Addwords(字符串输入)
{
如果(input.Length>=minimumLength&&input.Length=
像这样

public void Addwords(string input)
{
    if(input.Length < minLength)
        throw new Exception("Too Short");  // example only - throw a better exception
    if(input.Length > maxLength)
        throw new Exception("Too Long");   // example only - throw a better exception

    word.add(input);
}
public void Addwords(字符串输入)
{
if(input.LengthmaxLength)
抛出新异常(“太长”);//仅示例-抛出更好的异常
添加(输入);
}
像这样吗

public void Addwords(string input)
{
    if(input.Length < minLength)
        throw new Exception("Too Short");  // example only - throw a better exception
    if(input.Length > maxLength)
        throw new Exception("Too Long");   // example only - throw a better exception

    word.add(input);
}
public void Addwords(字符串输入)
{
if(input.LengthmaxLength)
抛出新异常(“太长”);//仅示例-抛出更好的异常
添加(输入);
}

您也可以使用正则表达式来限制单词中使用的字符以及长度。在下面的正则表达式中,只允许包含介于2到10个字符之间的大写和小写字母的单词

public void Addwords(string input)
{
    Match match = Regex.Match(input, "^[a-zA-Z.]{2,10}$");
    if (match.Success)
    {
        word.add(input);
    }
}  

您还可以使用正则表达式来限制单词中使用的字符以及长度。在下面的正则表达式中,只允许包含介于2到10个字符之间的大写和小写字母的单词

public void Addwords(string input)
{
    Match match = Regex.Match(input, "^[a-zA-Z.]{2,10}$");
    if (match.Success)
    {
        word.add(input);
    }
}  


只需在检查输入字符串长度的Addowrds()方法中添加功能即可。在
Addwords
中,不要
word.add(input);
如果
input.length
太长或太短?您的问题更多的是“让用户知道哪里出了问题”kind?
现在进入问题?
但您仍然没有问任何问题…这是如何“完全功能”的?
控制台
列表
排序
没有正确大写,并且您没有捕获
排序()的输出。
只需在Addowrds()中添加功能即可检查输入字符串长度的方法。在
Addwords
中,不要
word.add(input);
如果
input.length
太长或太短?您的问题更多的是“让用户知道哪里出了问题”吗?
现在要问问题了吗?
但您仍然没有问问题……这是如何“完全功能”的?
控制台
列表
排序
未正确大写,并且未捕获
排序()的输出
.Meh.我不确定我会抛出和异常,而不是像Cameron那样的东西。谢谢D Stanley对代码的出色解释。tnw,你介意解释一下异常与使用ex console相比的最大优点和缺点吗。写(“”);或messagebox?。我只是把它作为一个例子-如果添加了一个无效的单词,你需要决定你想做什么。这将决定一个异常或其他通知是否合适。对于一个无效的输入,你需要某种形式的反馈-是否是异常、messagebox、返回bool等等,这取决于你。Meh。我不确定我会做什么uld抛出和异常,而不是像Cameron那样。感谢D Stanley对代码的出色解释。tnw,您是否介意解释异常与使用ex console.write(“”)的最大优点和缺点;或messagebox?我只是把它作为一个例子-你需要决定如果添加了一个无效的单词,你要做什么。这将决定一个异常或其他通知是否合适。你需要对一个无效的输入进行某种反馈-是否是异常,messagebox,返回bool等等,这取决于你。嗨,Andy,谢谢r另一个例子,regex之间的区别是什么,他们在课程jet中没有谈论任何关于regex的内容。regex和???之间的区别?转到。这是阅读regex的一个很好的起点。什么时候使用en regex管理限制,什么时候使用变量,如min和max?嗨,安迪,感谢另一个例子,dif是什么参考regex,他们在课程jet中没有谈论任何关于regex的内容。regex和???之间的区别请访问。这是阅读regex的一个很好的起点。何时使用en regex来管理限制,何时使用诸如min和max之类的变量?谢谢Cameron,您的解决方案一路解决了这个问题。我真的很感激e详细解释的级别。我很高兴我能提供帮助!没问题。如果你意外投了反对票,你可以再次单击向下箭头或单击向上箭头收回你的反对票。谢谢Cameron,你的解决方案一路解决了问题。我真的很感谢详细解释的级别。我很高兴我能提供帮助!没有公关问题。如果你不小心投了反对票,你可以单击向下箭头收回你的反对票