现在的位置: 首页 > 综合 > 正文

List不用循环 去重 条件筛选 降序排序 并打印出来

2013年03月13日 ⁄ 综合 ⁄ 共 772字 ⁄ 字号 评论关闭

 

不用循环打印出以下数组中小于5的数据

List<int> list = new List<int>() { 5, 3, 4, 1, 3, 9, 8, 6, 8, 7, 2, 0 };

string s = string.Join(",", Array.ConvertAll<int, string>(list.Distinct().ToList().FindAll((n) => { return n < 5; }).OrderByDescending(n => n).ToArray(), delegate(int i) { return i.ToString(); }));

 

简其必要 问题中的去重 降序 并打印都可以分离出来

去重list.Distinct().toList()

条件筛选小于5的 list.FindAll(delegate(n){return n<5;}) 代码中的“=>”表达式同理

降序并转为数组 list.OrderByDescending(n => n).ToArray()

数组间的转换Array.ConvertAll<int, string>(int[] array,converter)

    array 在前面已经通过list.ToArray()得到,后面的converter也可以用传统的方法实现

    Array.ConvertAll(arrary,new Converter<string, int>(StrToInt));

 public static int StrToInt(string str)
        {
            return int.Parse(str);
        }

上面代码只是简化原理

数组到字符串string.Join(",",string[])

最终打印即可

http://hi.baidu.com/qxyywy/blog/item/313bd4a299f3fdeb9152ee02.html

抱歉!评论已关闭.