这似乎是一件很简单的事情,但我似乎无法找出正确的语法。我目前有这个:
KeyValuePair<string, string>[] kvpArr = new KeyValuePair<string,string>[];
但是,这似乎有效:
KeyValuePair<string, string>[] kvpArr = new KeyValuePair<string,string>[10];
但我最初不知道数组的大小。我知道我可以使用一系列KVP,我可能会,但我只是想知道如何实现这一点。
答案 0 :(得分:11)
不,你不能这样做 - 因为数组总是有固定的大小。如果您没有指定该尺寸,您希望使用的尺寸是多少?您 必须指定大小本身或内容(允许推断大小)。例如:
int[] x = new int[10]; // Explicit size
int[] y = new int[] { 1, 2, 3, 4, 5 }; // Implicit size
int[] z = { 1, 2, 3, 4, 5 }; // Implicit size and type
List<T>
绝对是您收藏的朋友,你不知道它的大小。
答案 1 :(得分:7)
答案 2 :(得分:7)
根据定义,数组是固定大小的。您可以在第二个代码示例中指定大小,也可以从初始化中推断出它:
KeyValuePair<string, string>[] kvpArr = new KeyValuePair<string, string>[]
{
new KeyValuePair<string, string>(...),
new KeyValuePair<string, string>(...),
...
}
如果你想要一个可变长度的结构,我建议你使用List<T>
。
有关数组的更多信息,请参阅C# programming guide。
答案 3 :(得分:1)
这个怎么样?
var kvpArr = new List<KeyValuePair<string,string>>();