我有一个列表: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]
,但我不清楚为什么你应该弱地键入你的数组。
如果你需要一个二维数组,第二个维度的长度为一,你可以写:
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
没有()
(。