在 C# 中的字符串列表中搜索混乱的字符串

Jav*_*ram 0 .net c# string search

我正在使用 .NET2.0
我想在字符串列表中搜索混乱的字符串

string[] wordList = new string[] { "java", "csharp", "fortran", "cobol", "pascal", "perl", "flash" };
string findText = "spclaa"; 

// do stuff 
Run Code Online (Sandbox Code Playgroud)

我希望结果是“pascal”, 如果找不到,则给出“抱歉,未找到”

更新:

  • 这不是家庭作业
  • 列表大约有 1000 个单词,因此对每个单词进行排序并不容易

3Da*_*ave 5

好吧,一种方法是:

  1. 创建数组的副本
  2. 按字母顺序对每个字符串进行排序
  3. 按字母顺序对搜索词进行排序
  4. 查找复制数组中与已排序搜索项匹配的元素的索引
  5. 如果它们匹配,则返回原始(未排序)数组中的相应元素。
  6. 如果不匹配,请继续搜索。

值得注意的是,两个单词可能具有相同的字符内容但不相等。例如,“neo”和“one”具有相同的字符,但显然不是同一个词。

更新

正如 Paul 所建议的,如果您仅对与搜索词具有相同字符数的字符串进行排序,效果会更好。