gpt4 book ai didi

c# - 在 C# 中将 IList 转换为数组

转载 作者:可可西里 更新时间:2023-11-01 09:16:43 26 4
gpt4 key购买 nike

我想将 IList 转换为数组:请看我的代码:

IList list = new ArrayList();
list.Add(1);
Array array = new Array[list.Count];
list.CopyTo(array, 0);

为什么我得到 System.InvalidCastException:源数组中的至少一个元素无法转换为目标数组类型?假设我不能使用 ArrayList 作为 list 变量的类型,如何解决这个问题?

更新 1:我使用 .NET 1.1。所以我不能使用泛型、Linq 等等。我只想接收最常见情况的结果 - 以整数为例,我需要这段代码适用于所有类型,所以我在这里使用 Array (也许我使用 Array 是错误的,但我需要,再次,常见情况)。

最佳答案

您正在创建 Array 的数组 值(value)观。 1 是 int ,不是 Array .你应该:

IList list = new ArrayList();
list.Add(1);
Array array = new int[list.Count];
list.CopyTo(array, 0);

或者,理想情况下,不要使用非泛型类型开始...使用 List 而不是 ArrayList , IList<T>而不是 IList等等

编辑:请注意,第三行很容易是:

Array array = new object[list.Count];

相反。

关于c# - 在 C# 中将 IList 转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9507002/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com