日期:2014-05-18  浏览次数:20973 次

C#统计Ayyaylist中相同元素出现的次数并排序
比如:
  ArrayList pre = new ArrayList();
  pre.add('我'); 
  pre.add('的');  
  pre.add('朋');
  pre.add('友');  
  pre.add('的');  
  pre.add('朋');  
  pre.add('友'); 

要统计的结果:的——2
  朋——2
  友——2
  我——1
该如何统计并排序,有什么高效的方法,请高手指点!

------解决方案--------------------
C# code
 
Dictionary<string,int> dic=new Dictionary<string,int>();
foreach(var p in pre)
{
    if(dic.ContainKey(p))
            dic[p]+=1;
    else
            dic.Add(p,1);
}

------解决方案--------------------
C# code

你用的是char,如果是字符,就将from char 改为 from string
            System.Collections.ArrayList pre = new System.Collections.ArrayList();
            pre.Add('我');
            pre.Add('的');
            pre.Add('朋');
            pre.Add('友');
            pre.Add('的');
            pre.Add('朋');
            pre.Add('友');

            var vs = from char p in pre group p by p into g select new { g, num = g.Count() }; 
            foreach (var v in vs)
            {
                MessageBox.Show(v.g.Key + "=" + v.num);
            }

------解决方案--------------------
探讨
C# code

你用的是char,如果是字符,就将from char 改为 from string
System.Collections.ArrayList pre = new System.Collections.ArrayList();
pre.Add('我');
pre.Add('的');
p……