私のプログラムは、距離値と ID 番号の 2 つの部分で構成される文字列を取得しています。これらを分割して、プログラム内のローカル変数に保存しました。すべての ID 番号はディクショナリに格納され、着信距離値のチェックに使用されます。ただし、デバイスからプログラムに送信される各文字列は、1 つの文字列で渡されることに注意してください。次に私のプログラムがデバイスからその信号を受信すると、以前に存在していた以前のデータが上書きされます。
プログラムに入力される 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 のみを更新するようにするにはどうすればよいですか?
入ってくる情報は動的である可能性があるため、できるだけ多くの情報をハード化することは避けたいと思います。