簡體   English   中英

如何在多維鋸齒陣列中添加項目?

[英]How To Add Items In A Multi-Dimensional Jagged Array?

我試圖將項目添加到一個已經存在的鋸齒狀數組中,但遇到了一些麻煩。 我的程序是一個控制台應用程序,用於處理學生成績(添加學生,刪除學生,更改姓名,為各個學生添加成績等)。 我正在讀取一個包含學生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;
    }
}

盡管這是我在現實世界中永遠都不會做的事情……我認為它確實滿足了您對作業的限制。

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();

    }
}

這將是您要做的最基本的方法:

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 < studentArray.Length; i++)
{
    if (studentID == studentArray[i][0])
    {
        studentArray[i] =
            studentArray[i]
                .Concat(new [] { newGrade })
                .ToArray();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM