计数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"]++;

计数2个元素

拥有一个将一对字符串映射为整数的字典:

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中,其中两个输入作为键,计数器作为值。