从文件加载TextAsset并且无法比较

时间:2019-05-03 05:02:51

标签: c# list unity3d unityscript

我正在从作为字典单词的资源加载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'));
        }
    }

enter image description here

1 个答案:

答案 0 :(得分:0)

我不知道为什么为TextAsset类创建了扩展方法,但是现在,当拥有扩展方法时,应该像这样使用它(在TextAsset实例上调用自己的方法):

words = txt.TextAssetToList();

原因:

words = TextAssetExtensionMethods.TextAssetToList(txt);

现在,您可能遇到的问题之一是在字符串中留出空格, 只需修剪您的输入即可:

Array.ConvertAll(ta.text.Split(','), p => p.Trim()).ToList(); //LINQ used

假设您的单词用逗号分隔