无法将ListBox.ObjectCollection转换为(类型化)数组

D. *_*per 8 c# arrays string collections listbox

我想将项目转换为String数组或我用来填充ListBox.DataSource的类型.该类型已重写ToString()但我似乎无法将其转换,甚至不能转换为String [].

String[] a = (String[])ListBox1.Items;
Contacts[] b = (Contacts[])ListBox1.Items;
Run Code Online (Sandbox Code Playgroud)

Mar*_*tos 24

string[] a = ListBox1.Items.Cast<string>().ToArray();
Run Code Online (Sandbox Code Playgroud)

当然,如果你打算做的a只是迭代它,你不必调用ToArray().您可以直接使用IEnumerable<string>返回的Cast<string>(),例如:

foreach (var s in ListBox1.Items.Cast<string>()) {
    do_something_with(s);
}
Run Code Online (Sandbox Code Playgroud)

或者,如果您有某种方法将字符串转换为联系人,您可以执行以下操作:

IEnumerable<Contacts> c = ListBox1.Items.Cast<string>().Select(s => StringToContact(s));
Run Code Online (Sandbox Code Playgroud)