你的值不固定,写个循环遍历需要很多很多的判断,举个例子,一但有不同的值你就需要遍历一遍,这样下来不知道要遍历多少遍(如果数组比较大的话),效率是比较低的。建议保存到数据库
建立表
id  values
1   A
2   B
3   A
4   C
......select id,count(*) from table group by id这样就可以得到你要的结果,再从数据库取出值赋给新数组

解决方案 »

  1.   

    string[] str1=new string[]{"a","b","c","a","b","d"};
    StringBuilder sb = new StringBuilder();
    for(int i=0;i<str1.Length;i++)
    {
    sb.Append(str1[i]);
    }
    string s = sb.ToString();
    ArrayList str2 = new ArrayList();
    string temp = "";
    int len = 0;
    while(s.Length>0)
    {
    len = s.Length;
    temp = s[0].ToString();
    s = s.Replace(temp,"");
    str2.Add(temp+"-"+Convert.ToString(len-s.Length));
    }
      

  2.   

    随便写的,只适用于当str1中每个元素都是单个字符的情况。
      

  3.   

    建议用ArrayList然后用Contains方法来判断。
      

  4.   

    如果有数组包含很多不同的值,请问楼上的需要多少Contains来判断啊?
    这个问题不好用数组解决的关键就是你不知道有多少不重复的值。
      

  5.   

    支持二楼的
    建立一个DataTable表,
    然后用语句查询
      

  6.   

    应该是select value,count(*) from table group by value吧
      

  7.   

    foreach(string s in str1)
    {
        switch(s)
        case "A":
            str2[0]++;
        case "B":
            str2[1]++;
        ...
    }
      

  8.   

    当然不是只有A,B,C,D了,字符串数组内容不定
      

  9.   

    如果遍历可以这样
    foreach循环依次取第一个数组
    {
       判断第二个数组是否为空或其中有与当前第一个数组中类似的值
       如果没有,第二个数组添加一项
       如果有,第二个数组中相同的值的count+1
    }
      

  10.   

    同意wangsaokui(无间道III(终极无间)) 的方法