计算2个元素

时间:2014-10-31 20:22:30

标签: c#

标题有些令人困惑,让我试着解释一下我想要做什么。 我同时收到2个字符串,它们在每个接收上相互连接,但可能与下一个接收的数据有关,也可能没有。

所以,如果我收到这个组合:

ID24
PART2

我想创建一个变量来增加该组合的计数器,例如:

ID24-PART2++ (1)

然后,在下一轮接收中,我可以得到这个:

ID59
PART2

所以我会增加那个特定的计数器:

ID59-PART2++ (1)

最后确定,如果我再次收到:

ID24
PART2

然后:

ID24-PART2++ (2)
希望我能很好地解释自己。表现很重要。

也许是某种阵列:

data["ID24"]["PART2"]++;

3 个答案:

答案 0 :(得分:2)

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

Dictionary<Tuple<string, string>, int> dictionary = ...

答案 1 :(得分:0)

解决方案可能是使用散列映射。获取两个输入,将它们转换为字符串,然后将它们存储在hashmap中,其中两个输入作为键,计数器作为值。

答案 2 :(得分:0)

我要做的是将两个字符串一起添加,并将其作为字符串添加到字典中:

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;
}