c# - 内容相同的字符串不相等?

标签 c# .net unity-game-engine equality

public string OpenDialogueFile(string dialogueName) {
    if(dialogues == null) {
        dialogues = Resources.LoadAll<TextAsset>("Dialogue");
    }
    var text = "";
    foreach(var ta in dialogues) {
        print(ta.name + ".." + dialogueName);
        if(ta.name == dialogueName) {
            print("Found");
            text = ta.text;
            break;
        }
    }
    return text;
}

此代码应找到具有所请求名称的纯文本文件并吐出内容。

使用Resources/Dialogue中的文件“test1和test2”并请求test1,输出为

test1..test1
Found

但是,当请求 test2 时

test1..test2
test2..test2

程序声称 test2 不等于 test2。

ta.name和dialogName都是字符串,所以它应该通过内容来测试相等性。

我的相等操作有问题吗?

最佳答案

在比较字符串之前尝试清除字符串中的空格

var cleanDialogueName = dialogueName.Trim();
foreach(var ta in dialogues) 
{
    var cleanName = ta.name.Trim();

    print(cleanName + ".." + cleanDialogueName);
    if (cleanName == cleanDialogueName)
    {
        print("Found");
        text = ta.text;
        break;
    }
 }

关于c# - 内容相同的字符串不相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23878289/

相关文章:

c# - WP7图像处理API

c# - 将List <List <string >>转换为List <string>

c# - AntiXSS 不会清理未封闭的 html 标签

unity-game-engine - Unity 网络 Material 颜色更改不起作用

c# - 如何在 C# 中为 webclient 设置端口?

.net - 如何在多个解决方案之间共享相同的 Resharper 设置,而无需手动干预?

c# - NET 5 是否有用于存储地理定位数据的类?

c# - caSTLe-windsor 中的多装饰器模式

unity-game-engine - Unity3D - 发射值参数未显示

c# - 如何查找文件夹中的所有可编写脚本的对象,然后从其中加载变量?