用另一个数组填充C#数组

用另一个数组填充C#数组,c#,arrays,C#,Arrays,我试图用字符串数组的值填充我的第一列。 我正在使用下面的代码。它不起作用,因为我打算使用它。它抛出“对象引用未设置为对象的实例”。有人能解释一下我做错了什么,并提出正确的方法吗 private static int i = 0; public static string[] names = new string[] { "cmd", "EUI", "ts", "fcnt", "port", "freq", "dr", "ack", "gws", "data" }; public static s

我试图用字符串数组的值填充我的第一列。 我正在使用下面的代码。它不起作用,因为我打算使用它。它抛出“对象引用未设置为对象的实例”。有人能解释一下我做错了什么,并提出正确的方法吗

private static int i = 0;
public static string[] names = new string[] { "cmd", "EUI", "ts", "fcnt", "port", "freq", "dr", "ack", "gws", "data" };
public static string[,] jdata;

static void Main(string[] args) {

        while (i++ < names.Length) {
            jdata[i,0] = names[i];
        }
}
private static int i=0;
公共静态字符串[]名称=新字符串[]{“cmd”、“EUI”、“ts”、“fcnt”、“port”、“freq”、“dr”、“ack”、“gws”、“data”};
公共静态字符串[,]jdata;
静态void Main(字符串[]参数){
while(i++
jdata为空

    private static int i = 0;
    public static string[] names = new string[] { "cmd", "EUI", "ts", "fcnt", "port", "freq", "dr", "ack", "gws", "data" };
    public static string[,] jdata = new string[names.Length, 1];

    static void Main(string[] args)
    {

        while (i++ < names.Length)
        {
            jdata[i, 0] = names[i];
        }
    }
private static int i=0;
公共静态字符串[]名称=新字符串[]{“cmd”、“EUI”、“ts”、“fcnt”、“port”、“freq”、“dr”、“ack”、“gws”、“data”};
公共静态字符串[,]jdata=新字符串[names.Length,1];
静态void Main(字符串[]参数)
{
while(i++
jdata为空

    private static int i = 0;
    public static string[] names = new string[] { "cmd", "EUI", "ts", "fcnt", "port", "freq", "dr", "ack", "gws", "data" };
    public static string[,] jdata = new string[names.Length, 1];

    static void Main(string[] args)
    {

        while (i++ < names.Length)
        {
            jdata[i, 0] = names[i];
        }
    }
private static int i=0;
公共静态字符串[]名称=新字符串[]{“cmd”、“EUI”、“ts”、“fcnt”、“port”、“freq”、“dr”、“ack”、“gws”、“data”};
公共静态字符串[,]jdata=新字符串[names.Length,1];
静态void Main(字符串[]参数)
{
while(i++
您需要先初始化
jdata
数组。作为参数,您可以使用
名称
数组的长度和所需的列数

另外,如果
i
变量在开始时为0,则应在向新数组添加名称后将其递增,否则会出现索引超出范围异常

private static int i = 0;
public static string[] names = new string[] { "cmd", "EUI", "ts", "fcnt", "port", "freq", "dr", "ack", "gws", "data" };
public static string[,] jdata;

static void Main(string[] args) {
    jdata = new string[names.Length, 1];
    while (i < names.Length) {
        jdata[i,0] = names[i];
        i++; 
    }
}
private static int i=0;
公共静态字符串[]名称=新字符串[]{“cmd”、“EUI”、“ts”、“fcnt”、“port”、“freq”、“dr”、“ack”、“gws”、“data”};
公共静态字符串[,]jdata;
静态void Main(字符串[]参数){
jdata=新字符串[names.Length,1];
while(i
您需要先初始化
jdata
数组。作为参数,您可以使用
名称
数组的长度和所需的列数

另外,如果
i
变量在开始时为0,则应在向新数组添加名称后将其递增,否则会出现索引超出范围异常

private static int i = 0;
public static string[] names = new string[] { "cmd", "EUI", "ts", "fcnt", "port", "freq", "dr", "ack", "gws", "data" };
public static string[,] jdata;

static void Main(string[] args) {
    jdata = new string[names.Length, 1];
    while (i < names.Length) {
        jdata[i,0] = names[i];
        i++; 
    }
}
private static int i=0;
公共静态字符串[]名称=新字符串[]{“cmd”、“EUI”、“ts”、“fcnt”、“port”、“freq”、“dr”、“ack”、“gws”、“data”};
公共静态字符串[,]jdata;
静态void Main(字符串[]参数){
jdata=新字符串[names.Length,1];
while(i
要在方法中使用对象,必须先实例化它! 您的数组
jdata
的值为
null
,因此您无法访问它

首先初始化它并给它适当的尺寸,这样就可以清楚地知道需要提前获取多少内存:

public static string[,] jdata = new string[names.Length, 1];
另外,如果您想按原样使用while循环,则需要从
i
at-1开始。否则,您将跳过第一个条目。您应该只运行到
names.Length-1

while (i++ < names.Length-1)
{
    jdata[i, 0] = names[i];
}
这有两个优点:

1) 保存在列中的列表可以有不同的长度

2) 您可以随意删除和添加值

要访问第一列,只需使用
[]
运算符:

List<string> savednames = jdata[0];
List savednames=jdata[0];

要在方法中使用对象,必须先实例化它! 您的数组
jdata
的值为
null
,因此您无法访问它

首先初始化它并给它适当的尺寸,这样就可以清楚地知道需要提前获取多少内存:

public static string[,] jdata = new string[names.Length, 1];
另外,如果您想按原样使用while循环,则需要从
i
at-1开始。否则,您将跳过第一个条目。您应该只运行到
names.Length-1

while (i++ < names.Length-1)
{
    jdata[i, 0] = names[i];
}
这有两个优点:

1) 保存在列中的列表可以有不同的长度

2) 您可以随意删除和添加值

要访问第一列,只需使用
[]
运算符:

List<string> savednames = jdata[0];
List savednames=jdata[0];
尝试使用列表

    private static int i = 0;
    public static string[] names = new string[] { "cmd", "EUI", "ts", "fcnt", "port", "freq", "dr", "ack", "gws", "data" };
    public static List<string>[] jdata = new List<string>[names.Length];

    static void Main(string[] args)
    {
        for (int j = 0; j < names.Length; j++) jdata[j] = new List<string>();
        while (i < names.Length)
        {
            jdata[i].Add(names[i]);
            i++;
        }

        Console.ReadKey();
    }
private static int i=0;
公共静态字符串[]名称=新字符串[]{“cmd”、“EUI”、“ts”、“fcnt”、“port”、“freq”、“dr”、“ack”、“gws”、“data”};
公共静态列表[]jdata=新列表[names.Length];
静态void Main(字符串[]参数)
{
对于(intj=0;j
尝试使用列表

    private static int i = 0;
    public static string[] names = new string[] { "cmd", "EUI", "ts", "fcnt", "port", "freq", "dr", "ack", "gws", "data" };
    public static List<string>[] jdata = new List<string>[names.Length];

    static void Main(string[] args)
    {
        for (int j = 0; j < names.Length; j++) jdata[j] = new List<string>();
        while (i < names.Length)
        {
            jdata[i].Add(names[i]);
            i++;
        }

        Console.ReadKey();
    }
private static int i=0;
公共静态字符串[]名称=新字符串[]{“cmd”、“EUI”、“ts”、“fcnt”、“port”、“freq”、“dr”、“ack”、“gws”、“data”};
公共静态列表[]jdata=新列表[names.Length];
静态void Main(字符串[]参数)
{
对于(intj=0;j
在尝试使用I之前,您需要初始化jdata。如果不知道最终大小,如何初始化?
静态字符串[,]jdata=新字符串[,]{}可能重复的@Rapsoulhs在这种情况下,我想你需要使用一个列表。在你尝试使用它之前,你需要初始化jdata。如果我不知道最终的大小,我该如何初始化?
static string[,]jdata=new string[,]{}可能重复的@Rapsoulhs在这种情况下,我认为您需要使用一个列表在这种情况下,我的数组的大小为[10,1],这是我不想要的。我希望[10,x]中的x稍后会被填充。@rapsoulhs:那么唐