如果用户在文本框中输入一个或多个无效的双打,我宁愿不抛出异常。 这是我想做的事情,但当然是错误的。
double myDouble[];
double.TryParse(textBox1.Text.Split(' '), out myDouble);
答案 0 :(得分:5)
TryParse()
仅尝试解析单个双精度值 - 您无法将其与数组一起使用。您可以尝试查看是否有任何数字无效:
double myDouble;
bool parseFailed = textBox1.Text.Split(' ')
.Any( s => !double.TryParse(s, out myDouble));
答案 1 :(得分:3)
怎么样......
var myDoubleList = new List<double>();
foreach(var doubleString in textBox1.Text.Split(' '))
{
double myDouble;
if (double.TryParse(doubleString, out myDouble))
myDoubleList.Add(myDouble);
}
答案 2 :(得分:2)
首先拆分,然后解析每个值。也许是这样的:
string numbers = "10 20 30 40 50";
int x = 0;
var values = from str in numbers.Split(' ')
where int.TryParse(str, out x)
select x;
答案 3 :(得分:1)
如果您只想要第一个值,也可以这样做。
double myDouble[];
double.TryParse(textBox1.Text.Split(' ')[0], out myDouble);
答案 4 :(得分:1)
这个(几乎)一个班轮怎么样?
double dbl;
IEnumerable<double> doubles =
textBox1.Text.Split(' ')
.Select(str => Double.TryParse(str, out dbl) ? dbl : 0.0);
喜欢一个衬垫:)