如字符数组
 string []a=new string[]{"aa,bb,cc,dd,aa,bb,aa,dd,aa"};
如何判断有几个aa或bb,dd,如果有相同,就用int型保存起来数量.

解决方案 »

  1.   

    You might use Dictionary<string, int>
      

  2.   

    string []a=new string[]{"aa,bb,cc,dd,aa,bb,aa,dd,aa"}; 
    Dictionary<string,int> dic=new  Dictionary<string,int>();foreach(string v in a)
    {
       if(dic.ContainsKey(v))
         dic[v]=dic[v]+1;
    }差不多这个意思吧
      

  3.   

    string [] a = new string[] {"aa,bb,cc,dd,aa,bb,aa,dd,aa"};  
    Hashtable ht = new Hashtable();
    string[] b;
    foreach(string s in a)
    {
    b = s.Split(',');
    foreach(string ss in b)
    {
    if (ht.Contains(ss))
    ht[ss] = (int)ht[ss] + 1;
    else
    ht[ss] = 1;
    }
    } IDictionaryEnumerator myEnumerator = ht.GetEnumerator();
    while (myEnumerator.MoveNext())
    MessageBox.Show(myEnumerator.Key + " " +  myEnumerator.Value);
      

  4.   


    如果用正则表达式,是会方便很多,但是都是字符型的,而且如果定义的字符是从aa开始一直到zz的话,那正则表达式是不是要把每个字符都设为一个变量名呢?
      

  5.   

    最好理解的方法
    string []a=new string[]{"aa,bb,cc,dd,aa,bb,aa,dd,aa"}; 
    string b=Console.ReadLine();
    int count=0;//统计字符串出现的次数
    for(int i=0;i<a.leng;i++){
        if(a[i]==b){
           count++;
        }
    }
    Console.WriterLine(""+count);
      

  6.   

    .net 3.5
                string a =  "aa,bb,cc,dd,aa,bb,aa,dd,aa";
                var groups = a.Split(',').GroupBy(s => s);            foreach (var item in groups)
                {
                    Console.WriteLine("{0} - {1}", item.Count(), item.Key);
                }