2

我正在尝试将列表框转换为数组:

var modarray = listBox1.Items.Cast<String>().ToArray();

但后来我还需要使用一个 int 数组,所以我尝试了以下方法:

int[] arr = modarray.Cast<int>().ToArray();

我收到一个错误,表明无法转换数组。有人可以帮我吗?

4

3 回答 3

4

尝试这个:

int[] arr = modarray.Select(int.Parse).ToArray();

这将使用int.Parse()原始数组中每个字符串的方法来创建一个新的整数数组。

于 2012-11-20T17:26:11.263 回答
1

试试这个:

int[] arr = modarray.Select(I => Convert.ToInt32(I)).ToArray();
于 2012-11-20T17:25:13.547 回答
1

.Cast<int>()就好像foreach (var i in list) yield return (int)i;

如果您的项目是下面的字符串,则会失败。

我相信你需要:int[] arr = modarray.Select(s => Int32.Parse(s)).ToArray();

于 2012-11-20T17:26:01.837 回答