我有一份名单..: var families = new List<string>();
. 我创建了一个长度为列表的单维数组。var a = Array.CreateInstance(typeof(object), families.Count(), 1);
我怎样才能在数组 "a "中填入列表中的值,以便使用该数组将值放入一个范围内? 希望我的问题是清楚的。
简单地说
string[] a = families.ToArray();
如果你想在不填满数组的情况下创建数组,你可以简单地写。
var a = new string[families.Count];
这就相当于 Array.CreateInstance
. 只有在类型是以 Type
变量,这样就可以在运行时确定数组的类型。这将允许你在运行时确定数组的类型;但是,这里只需使用 new knownType[count]
.
或 new object[count]
但我不明白为什么你要对数组进行弱类型化。
如果你需要一个2维数组,第二维的长度为1,你可以写。
var a = new string[families.Count, 1];
// OR if you really need an object array
var a = new object[families.Count, 1];
for (int i = 0; i < families.Count; i++) {
a[i, 0] = families[i];
}
不要使用 families.Count()
. 这将调用一个LINQ扩展方法。这里不需要这样做,因为 List<T>
具有更快的 Count
属性 (families.Count
橆 ()
).