不用循环打印出以下数组中小于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