2010-04-08 33 views

Trả lời

22
string[] a = ListBox1.Items.Cast<string>().ToArray(); 

Tất nhiên, nếu tất cả các bạn có kế hoạch để làm với a là lặp qua nó, bạn không cần phải gọi ToArray(). Bạn có thể trực tiếp sử dụng các IEnumerable<string> trở về từ Cast<string>(), ví dụ:

foreach (var s in ListBox1.Items.Cast<string>()) { 
    do_something_with(s); 
} 

Hoặc, nếu bạn có một số cách để chuyển đổi chuỗi vào Danh bạ, bạn có thể làm một cái gì đó như thế này:

IEnumerable<Contacts> c = ListBox1.Items.Cast<string>().Select(s => StringToContact(s)); 
+0

Tôi chỉ phải chuyển đổi nó để chuyển nó thành tham số cho phương thức. Nó chỉ chấp nhận String [] hoặc Contact []. Rất hữu ích, cảm ơn! –

1

Phương pháp Cast doesn dường như không còn nữa. Tôi đã đưa ra một giải pháp khác:

String[] array = new String[ListBox.Items.Count] 
ListBox.Items.CopyTo(array, 0); 

Phương pháp CopyTo mất một mảng hiện có và chèn các mục ở chỉ số nhất định và về phía trước.

Tôi không biết nếu điều này là rất hiệu quả, nhưng nó phù hợp và dễ viết.

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