存储数组中值的出现次数

时间:2012-07-03 02:36:08

标签: c# arrays

您好我有一个循环,需要计算datagridview中日期的出现次数。如何存储该次数,并在找到同一日期的另一个时增加该数量?我想象的是:

for (int k = 0; k < (companyInfo.Rows.Count - 1); k++)
{
    for (int j = 0; j< dateArray.Length; j++)
    {
       if (companyInfo.Rows[k].Cells["StartDate"].Value.ToString().Trim() == dateArray[j])
       {
         //Find matching index in another array, increment that number
       }
    }
}

如果companyInfo是我循环遍历每一行的datagridview,则dateArray是一个长度为364的静态日期集(可能是字符串),而“另一个数组”将是某种单独的数组,它们会有一堆看似随机数字代表日期的出现。

是否存在可以更好地执行此操作的对象,或者是否必须跟踪哪个日期对应于两个数组之间的值?要找到最大/最小,平均等事情很难做到。

1 个答案:

答案 0 :(得分:2)

使用Dictionary<string, int>(在命名空间System.Collections.Generic中)。

IDictionary<string, int> count = new Dictionary<string, int>();

// In your loop
if (count.ContainsKey(your_date)){
    count[your_date]++;
} else {
    count.Add(your_date, 1);
}
// END In your loop