我已经创建了一个字典:
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方法读取它们。我仔细检查了它们,以确保我得到了正确的信息。
有人可以告诉我,如果我将字典中的值与正在读的字段进行比较,是否正确?
答案 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))