List<Model> data1 = list.Select(x => new Model { num = Convert.ToDecimal(x.PM25) }).OrderBy(x => x.num).ToList();
修改如下:
data = list.OrderBy(x => x.CO).Select(x => x.CO).ToList(); List<decimal> list3 = new List<decimal>(); decimal s3 = 0; list3 = data.ConvertAll<decimal>(x => decimal.TryParse(x, out s3) == true ? s3 : s3);
附TryParse的使用方法如下:
https://blog.csdn.net/firetaker/article/details/5638914
2010年06月01日 11:20:00 firetaker 阅读数:5258 标签: exceptionstring测试
[c-sharp] view plain copy
static void Main(string[] args) { try { string str = ""; // 如果当前str为空串,则出异常:输入字符串格式不正确 Console.WriteLine(Convert.ToDouble(str)); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadLine(); }
以上代码中出现的结果为:输入字符串格式不正确。因为传入的字符串为空,转换成double类型不成功
[c-sharp] view plain copy
static void Main(string[] args) { try { string str = "123.123"; // 如果当前str为空串,则出异常:输入字符串格式不正确 Console.WriteLine(Convert.ToDouble(str)); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadLine(); }
随便对str赋值一个合适的值,得到结果为:123.123
下面转换用另外一种方式处理:
第一种情况设置当前的str为空
[c-sharp] view plain copy
static void Main(string[] args) { try { string str = ""; double rst = 0.0; Console.WriteLine("转换结果为:" + double.TryParse(str, out rst)); Console.WriteLine(rst); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadLine(); }
得到的结果为:
转换结果为:false
0
第二种情况:
[c-sharp] view plain copy
static void Main(string[] args) { try { string str = "123.123"; double rst = 0.0; Console.WriteLine("转换结果为:" + double.TryParse(str, out rst)); Console.WriteLine(rst); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadLine(); }
得到的结果为:
转换结果为:true
123.123
由以上的测试结果可以看出。使用double.TryParse()做类型转换更安全
可以对返回值进行判断,也可以设置默认的返回值0