【发布时间】:2013-11-16 13:27:48
【问题描述】:
This is a follow on from this question
我的程序正在接收一个由两部分组成的字符串:一个距离值和一个 ID 号。我已经将它们分开并将它们存储在我的程序内的局部变量中。所有的 id 号码都存储在字典中,用于检查传入的距离值。虽然我应该注意到从设备发送到我的程序中的每个字符串都是通过单个字符串传递的。下次我的程序从设备接收到该信号时,它会覆盖之前的数据。
如果进入我的程序的 id 键与我的字典中的一个匹配,那么我的字典键旁边的一个变量应该被更新。但是,当我运行我的程序时,我没有得到 6 个不同的值,我只得到相同的值并且它们都同时更新。
这是我编写的所有代码:
Dictionary<string, string> myDictonary = new Dictionary<string, string>();
string Value1 = "";
string Value2 = "";
string Value3 = "";
string Value4 = "";
string Value5 = "";
string Value6 = "";
void Start()
{
myDictonary.Add("11111111", Value1);
myDictonary.Add("22222222", Value2);
myDictonary.Add("33333333", Value3);
myDictonary.Add("44444444", Value4);
myDictonary.Add("55555555", Value5);
myDictonary.Add("66666666", Value6);
}
private void AppendString(string message)
{
testMessage = message;
string[] messages = message.Split(',');
foreach(string w in messages)
{
if(!message.StartsWith(" "))
outputContent.text += w + "\n";
}
messageCount = "RSSI number " + messages[0];
uuidString = "UUID number " + messages[1];
if(myDictonary.ContainsKey(messages[1]))
{
Value1 = messageCount;
Value2 = messageCount;
Value3 = messageCount;
Value4 = messageCount;
Value5 = messageCount;
Value6 = messageCount;
}
}
我怎样才能得到它,以便当程序接收到第一个密钥(例如 1111111)时,它只更新 Value1?
通过的信息可能是动态的,所以我想尽可能避免硬性化信息。
【问题讨论】:
-
在你的
foreach()里面你真的要检查!message吗?
标签: c# string dictionary