计数2个元素
本文关键字:元素 2个 计数 | 更新日期: 2023-09-27 18:28:50
标题有点令人困惑,让我试着解释一下我要做什么。我同时接收到两个字符串,它们在每个接收时相互连接,但可能与下一个接收到的数据有关,也可能不相关。
所以,如果我收到这个组合:
ID24
PART2
我想创建一个变量,在这个组合上增加一个计数器,例如:
ID24-PART2++ (1)
然后,在下一轮接收中,我可以得到这个:
ID59
PART2
所以我会增加这个特定的计数器:
ID59-PART2++ (1)
要完成,如果我再次收到:
ID24
PART2
然后:
ID24-PART2++ (2)
希望我能好好解释自己。性能很重要。
也许是某种阵列:
data["ID24"]["PART2"]++;
拥有一个将一对字符串映射为整数的字典:
Dictionary<Tuple<string, string>, int> dictionary = ...
我要做的是将这两个字符串添加在一起,并将其作为字符串添加到字典中:
Dictionary<Tuple<string,string>,int> stringDict = new Dictionary<Tuple<string,string>,int>();
然后,对于您收到的每个字符串对:
Tuple<string,string> stringTuple = new Tuple<string, string>(string1, string2); //string1 and string2 are the strings you recieve
if(stringDict.ContainsKey(stringTuple))
stringDict[stringTuple]++;
else
stringDict.Add(stringTuple, 0);
如果你想通过foreach
循环来迭代它,你可以使用类似的方法:
foreach(KeyValuePair<Tuple<string, string>, int> kvp in stringDict)
{
Tuple<string, string> keyTuple = kvp.Key;
int tupleCount = kvp.Value;
}
解决方案可以是使用哈希映射。取两个输入,将它们强制转换为字符串,然后将它们存储在hashmap中,其中两个输入作为键,计数器作为值。