来源: (1条消息) C#报错:输入字符串格式不正确_pyy的博客-CSDN博客_输入字符串的格式不正确
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
Convert.ToDouble double.TryParse 使用方式比较
2010年06月01日 11:20:00 firetaker 阅读数:5258 标签: exceptionstring测试
- static void Main(string[] args)
- {
- try
- {
- string str = “”;
- // 如果当前str为空串,则出异常:输入字符串格式不正确
- Console.WriteLine(Convert.ToDouble(str));
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- Console.ReadLine();
- }
以上代码中出现的结果为:输入字符串格式不正确。因为传入的字符串为空,转换成double类型不成功
- 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为空
- 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
第二种情况:
- 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