如何在C#中获取英语中所有4个字母单词的列表

时间:2012-11-13 08:00:14

标签: c#

我是初学者,一直在玩C#。我最近为非常受欢迎的“牛和公牛”文字游戏编写了代码。它为2名球员工作,即;一个玩家想到一个单词而另一个人必须猜测它。我只有10次机会猜测。

我现在想为单个玩家制作游戏(Computer v Human)。我想知道是否还有没有字母重复的英语语言中的所有4个字母的单词(我将游戏仅限于4个字母单词)。我知道我可以使用Enumeration并写下所有4个字母的单词。但那是硬编码的话。这将是我的最后一个选择。我可以输入所有单词,但如果我玩游戏,我会对这个单词有所了解。

1 个答案:

答案 0 :(得分:0)

假设您有一个名为words list

的单词列表

您可以使用正则表达式选择4个字母的唯一单词

 List<string> 4letterUniqueWords=words
.Where(x=>Regex.IsMatch(x,"^(?=^[a-zA-Z]{4}$)(?!^.*?(.).*?\1.*?$).*?$"))
.Select(y=>y)
.ToList<string>();

^(?=^[a-zA-Z]{4}$)(?!^.*?(.).*?\1.*?$).*?$
  ---------------  ------------------ ---
        |                  |           |->matches if both the lookaheads are true
        |                  |->checks if there are any repeating words
        |->checks if the words contains 4 letter alphabetic words