2009-01-01 21 views
31

Làm cách nào bạn có thể kiểm tra xem chuỗichuyển đổi thành int?Chuyển đổi chuỗi thành int và kiểm tra thành công trong C#

Hãy nói rằng chúng tôi có dữ liệu như "House", "50", "Chó", "45,99", tôi muốn biết liệu tôi chỉ nên sử dụng chuỗi hoặc sử dụng các phân tích giá trị int để thay thế.

Trong JavaScript, chúng tôi có chức năng parseInt() này. Nếu chuỗi không thể được phân tích cú pháp, nó sẽ lấy lại NaN.

Trả lời

59

Int32.TryParse(String, Int32) - http://msdn.microsoft.com/en-us/library/f02979c7.aspx

bool result = Int32.TryParse(value, out number); 
    if (result) 
    { 
    Console.WriteLine("Converted '{0}' to {1}.", value, number);   
    } 
+0

Tôi đã chỉnh sửa nó, vì vậy bất kỳ lỗi nào có thể đã được sửa chữa –

+1

Tuyệt vời và trả về giá trị cho biết liệu chuyển đổi có thành công hay không. Cảm ơn! –

+2

+1 Tôi thích giải pháp, nhưng nó có thể thanh lịch hơn một chút bằng cách chạy nó ngay vào câu lệnh if. – BenAlabaster

11

Ông có thể không làm cho nó tao nhã hơn một chút bằng cách chạy TryParse ngay vào nếu?

Giống như vậy:

if (Int32.TryParse(value, out number))  
    Console.WriteLine("Converted '{0}' to {1}.", value, number); 
0

thấy điều này trong một trong những kết quả tìm kiếm: How do I identify if a string is a number?

Thêm điều này bởi vì câu trả lời tôi đã thấy trước không có sử dụng:

int n; 
bool isNumeric = int.TryParse("123", out n); 

đây "123" có thể giống như chuỗi s = "123" mà OP đang kiểm tra và giá trị n sẽ có giá trị ()) sau cuộc gọi nếu nó được tìm thấy là số.

Các vấn đề liên quan