我正在从作为字典单词的资源加载TextAsset并将其添加到List,并且我想将用户输入的单词与list进行比较,列表是否包含用户输入的单词?我尝试了很多方法,但是都没有用,结果是负面的。谁能帮助我找出答案?
public TextAsset txt;
public List<string> words;
void Awake()
{
words = new List<string>();
txt = (TextAsset)Resources.Load("words");
words = TextAssetExtensionMethods.TextAssetToList(txt);
}
public void Search()
{
Debug.Log(inputField.text);
Debug.Log(words.Contains(inputField.text));
Debug.Log(words.FindAll(s => s.Contains(inputField.text)));
Debug.Log(words.FindAll(s => s.IndexOf(inputField.text, StringComparison.OrdinalIgnoreCase) >= 0));
if (words.Contains(inputField.text, StringComparer.CurrentCultureIgnoreCase)) {
Debug.Log("Contains");
} else{
Debug.Log("not");
}
}
public static class TextAssetExtensionMethods {
public static List<string> TextAssetToList(this TextAsset ta) {
return new List<string>(ta.text.Split('\n'));
}
}
答案 0 :(得分:0)
我不知道为什么为TextAsset类创建了扩展方法,但是现在,当拥有扩展方法时,应该像这样使用它(在TextAsset实例上调用自己的方法):
words = txt.TextAssetToList();
原因:
words = TextAssetExtensionMethods.TextAssetToList(txt);
现在,您可能遇到的问题之一是在字符串中留出空格, 只需修剪您的输入即可:
Array.ConvertAll(ta.text.Split(','), p => p.Trim()).ToList(); //LINQ used
假设您的单词用逗号分隔