根据外部读取的字符串检查字典的值

时间:2013-11-01 16:22:00

标签: c# string dictionary

我已经创建了一个字典:

public Dictionary<string, string> myValues = new Dictionary<string, string>();

然后在我的开始方法中,我就像这样填写我的字典:

void Start()
{
    myValues.Add("device one", "11111111111111");
}

我正在尝试做的是检查我在字典中创建的值,在上面的示例中,它将是1111111111111,而不是远程读取的字符串值。我正在做的检查是:

void Update () 
{
    // Spawn a model based on the signal the ipad has recievied.
    if( myValues["device one"] == outputContent.text)
    {
        Instantiate(model1, new Vector3(-2.5f, 3.0f,0), Quaternion.identity);
    }       
}

该消息将从包装类中解析,该包装类从本机ipad中获取信息并将其直接传递给统一。获取消息的方法是:

private void AppendString(string message) 
{
    outputContent.text += "\n" + message;
}

现在,事情是,传递的消息有效。当我运行我的代码时,屏幕上充满了我想要的信息。但是当我尝试检查我存储的值与发送的值时,没有任何反应。

我如何得到我的初始硬编码值是通过首先从AppendString方法读取它们。我仔细检查了它们,以确保我得到了正确的信息。

有人可以告诉我,如果我将字典中的值与正在读的字段进行比较,是否正确?

2 个答案:

答案 0 :(得分:1)

有几个'可疑'点。

在这里,你添加\n,你确定它包含在字典的值中吗?

outputContent.text += "\n" + message;

另外,请确保正确比较字符串。它甚至可能是一个大写问题,这种情况多次困扰我。试试例如:

if(String.Equals(myValues["device one"], outputContent.text, StringComparison.OrdinalIgnoreCase)

答案 1 :(得分:0)

更好地替换以下行

 if( myValues["device one"] == outputContent.text)

使用:

 if( myValues["device one"].Equals(outputContent.text))