2011-09-15 28 views
1

如果用戶在文本框中輸入一個或多個無效雙打,我寧願不拋出異常。 這是我想做的事,但當然是錯的。如何使用Split與TryParse?

double myDouble[]; 
double.TryParse(textBox1.Text.Split(' '), out myDouble); 

回答

3

怎麼樣......

var myDoubleList = new List<double>(); 
foreach(var doubleString in textBox1.Text.Split(' ')) 
{ 
    double myDouble; 
    if (double.TryParse(doubleString, out myDouble)) 
     myDoubleList.Add(myDouble);  
} 
5

TryParse()只是試圖解析雙重價值 - 你不能陣列使用它。您可以嘗試查看是否有任何數字無效:

double myDouble; 
bool parseFailed = textBox1.Text.Split(' ') 
          .Any(s => !double.TryParse(s, out myDouble)); 
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; 
1

如果你只是想的第一個值,你可以這樣做,太。

double myDouble[]; 
double.TryParse(textBox1.Text.Split(' ')[0], out myDouble); 
1

這個(幾乎)一個班輪怎麼樣?

double dbl; 
IEnumerable<double> doubles = 
    textBox1.Text.Split(' ') 
       .Select(str => Double.TryParse(str, out dbl) ? dbl : 0.0); 

愛是愛一個襯墊:)