限制字符串列表添加

时间:2014-04-23 19:38:04

标签: c# string list

你好堆栈溢出用户, 我已经在C#中创建了一个功能齐全的Hangman游戏,现在我在完成任务之前对最后的部分进行了抛光 我决定创造三个不同的困难" Easy" "中" "硬盘"而不是让用户选择生活量 现在问题是什么? 是否有一个函数可以将单词添加到单词列表中(然后通过方法随机选择)?我想限制用户添加到单词列表中的单词的最小和最大长度 下面是我的WordList的类。

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);
    }
}

3 个答案:

答案 0 :(得分:4)

添加一项检查,看它是否符合最小长度且小于最大长度:

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");
}

我假设界限全包,所以我使用>=<=运算符。 MessageBox.Show假设您正在使用Windows窗体。否则,请正确处理错误消息。

答案 1 :(得分:0)

喜欢这个吗?

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);
}

答案 2 :(得分:0)

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

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