给定一个数组
如string [] strName = {"中国","武汉","北京","南宁","武汉","广州","北京","西藏,"武汉"}
用一个算法来求出此数组中出现次数最多的元素,在这个数组中次数最多的元素就是"武汉"
谢谢大家了啊

解决方案 »

  1.   

    你可以用Hashtable或Dictionary:    string [] strName = {"中国","武汉","北京","南宁","武汉","广州","北京","西藏","武汉"} ;
        string mostOften = "";
        int occurrence = 0;    Dictionary<string, int> statistics = new Dictionary<string, int>();
        foreach (string str in strName)
        {
            if (statistics.ContainsKey(str))
            {
                int i = statistics[str] + 1;
                statistics[str] = i;            if( i> occurrence)
                {
                    mostOften = str;
                    occurrence = i;
                }
            }
            else
            {
                statistics[str] = 1;
            }
        }    MessageBox.Show(mostOften + ": " + occurrence);
      

  2.   

    问题已经解决,谢谢啊  
    不过在2003上面会在“int i = statistics[str] + 1” “+”无法运用与object和int间操作
      

  3.   

    2003中没有泛型的 
    Dictionary<string, int> 这个类型没有