Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在多维交错数组中添加项?_C#_Multidimensional Array_Jagged Arrays - Fatal编程技术网

C# 如何在多维交错数组中添加项?

C# 如何在多维交错数组中添加项?,c#,multidimensional-array,jagged-arrays,C#,Multidimensional Array,Jagged Arrays,我试图将项目添加到一个已经存在的锯齿状数组中,但遇到了一些问题。我的程序是一个控制台应用程序,用于处理学生成绩(添加学生、删除学生、更改姓名、向各种学生添加成绩等)。我正在读一个顺序文件,其中包含学生ID、姓名,然后是每个学生的分数(0-100)。我决定使用锯齿状数组,因为我不知道每个学生会有多少分数,也不知道我会有多少学生 现在我正试图给现有的学生增加分数。我的文本文件如下所示: 00000,Mimzi Dagger,100,50,75,70,45,10,98,83 00001,Alexa

我试图将项目添加到一个已经存在的锯齿状数组中,但遇到了一些问题。我的程序是一个控制台应用程序,用于处理学生成绩(添加学生、删除学生、更改姓名、向各种学生添加成绩等)。我正在读一个顺序文件,其中包含学生ID、姓名,然后是每个学生的分数(0-100)。我决定使用锯齿状数组,因为我不知道每个学生会有多少分数,也不知道我会有多少学生

现在我正试图给现有的学生增加分数。我的文本文件如下所示:

 00000,Mimzi Dagger,100,50,75,70,45,10,98,83
 00001,Alexander Druaga,89,45,80,90,15,73,99,100,61
 00002,Nicholas Zarcoffsky,100,50,80,50,75,100,100
 00003,Kantmiss Evershot,50,100
我希望能够使用For循环并搜索用户输入的学生ID,一旦找到该学生ID,我希望在该学生下添加分数。这是我的一段代码,但它不起作用

for (int i = 0; i < studentArray.Length; i++)
{
    if (studentID == studentArray[i][0])
    {
        studentArray[i][studentArray[i].Length + 1] = newGrade;
    }
}
for(int i=0;i
虽然这是我在现实世界中永远不会做的事情。。。我认为它确实满足了你的任务限制

class Program
{
    static void Main(string[] args)
    {

        List<List<string>> dataList = new List<List<string>>();

        dataList.Add(new List<string> { "00000", "Mimzi Dagger", "100", "50", "75", "70", "45",    "10", "98", "83" });
        dataList.Add(new List<string> { "00001", "Alexander Druaga", "89", "45", "80", "90", "15", "73", "99", "100", "61" });
        dataList.Add(new List<string> { "00002", "Nicholas Zarcoffsky", "100", "50", "80", "50", "75", "100", "100" });
        dataList.Add(new List<string> { "00003", "Kantmiss Evershot", "50", "100" });

        for (int i = 0; i < dataList.Count; i++)
        {
            foreach (var item in dataList[i])
            {
                Console.WriteLine(item);
            }
        }

        Console.ReadLine();

    }
}
类程序
{
静态void Main(字符串[]参数)
{
List dataList=新列表();
添加(新列表{“00000”、“Mimzi匕首”、“100”、“50”、“75”、“70”、“45”、“10”、“98”、“83”);
添加(新列表{“00001”、“Alexander Druaga”、“89”、“45”、“80”、“90”、“15”、“73”、“99”、“100”、“61”);
添加(新列表{“00002”、“Nicholas Zarcoffsky”、“100”、“50”、“80”、“50”、“75”、“100”、“100”);
添加(新列表{“00003”、“Kantmiss Evershot”、“50”、“100”});
for(int i=0;i
这是做你想做的事情最基本的方法:

for (int i = 0; i < studentArray.Length; i++)
{
    if (studentID == studentArray[i][0])
    {
        Array.Resize(ref studentArray[i], studentArray[i].Length + 1);
        studentArray[i][studentArray[i].Length - 1] = newGrade;
    }
}
for(int i=0;i
就我个人而言,我觉得有点头疼

我宁愿这样写:

for (int i = 0; i < studentArray.Length; i++)
{
    if (studentID == studentArray[i][0])
    {
        studentArray[i] =
            studentArray[i]
                .Concat(new [] { newGrade })
                .ToArray();
    }
}
for(int i=0;i
studentArray
对象[]
的类型吗?您还可以显示从顺序文件创建每个
newGrade
的代码吗?一定要使用包含id的学生类实例的ArrayList和整数等级的ArrayList。C#为您提供了这种开箱即用的东西,为什么不使用它呢?ArrayList可以根据需要增长。@Enigmativity studentArray最初被称为fileArray。这是一个字符串[][]数组。我在原始文本文件中输入成绩,并在程序中输入。我希望文本文件中已经有一些学生和成绩。请参阅以了解如何增加数组的大小,以便可以添加新值。另请参阅,以获取大量信息,包括解释为什么写“它不起作用”是不够的。最后要注意的是,对于课堂作业,你最好问你的老师,包括:没有作弊的机会(你自己和你的成绩);老师知道你需要学什么;给老师反馈哪些学生区域需要工作。顺便说一句,输出是:00000米米匕首100 50 75 70 45 10 98 83 00001亚历山大·德鲁加89 45 80 90 15 73 99 100 61 00002尼古拉斯·扎尔科夫斯基100 50 80 50 75 100 00003坎特·埃弗肖特50 100这是使用列表,而不是锯齿数组?是的,当我知道有限个元素时,我通常会使用数组。如果您不知道数组中元素的最终数量,并且需要能够偶尔输入更多项,我认为最好只使用列表。