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

泛型:如何按出现次数分组
List<int> a = new List<int>{0,3,7,2,3,7,0,1,7,0,2,4,3,4,7,1,2,8,4,8}

List<int> num = new List<int>{0,1,2,3,4,5,6,7,8,9}


先判断数字0~9的出现次数,

次数<2的数值,也就是569 放入单元格(1,1)
次数=2的数值,也就是18 放入单元格(1,2)
次数>2的数值,也就是02347 放入单元格(1,3)

------解决方案--------------------
var query=a.GroupBy(a=>a).Select(g=>new{k=g.Key,cnt=g.Count()});
次数<2的数值,也就是569 放入单元格(1,1)
// String.Join("",query.Where(x=>x.cnt<2).Select(x=>x.k.ToString()).ToArray());
次数=2的数值,也就是18 放入单元格(1,2)
//String.Join("",query.Where(x=>x.cnt==2).Select(x=>x.k.ToString()).ToArray());
次数>2的数值,也就是02347 放入单元格(1,3)
String.Join("",query.Where(x=>x.cnt>2).Select(x=>x.k.ToString()).ToArray());