C# 从Streamreader到2d阵列

C# 从Streamreader到2d阵列,c#,arrays,multidimensional-array,streamreader,C#,Arrays,Multidimensional Array,Streamreader,如何使用Streamreader获取文件内容并将其放置在二维数组中。 档案如下: type1,apple,olive,pear type2,orange,nuts,melon type3,honey,grapes,coconut 到目前为止,我的代码如下: public static void invent() { StreamReader reader2 = new StreamReader("food.txt");

如何使用Streamreader获取文件内容并将其放置在二维数组中。 档案如下:

    type1,apple,olive,pear
    type2,orange,nuts,melon
    type3,honey,grapes,coconut
到目前为止,我的代码如下:

     public static void invent()
    {
        StreamReader reader2 = new StreamReader("food.txt");
        while (reader2.EndOfStream == false)
        {
            string[,] line = new string[1000, 1000];

             line = reader2.ReadLine();
        }


    }

我认为更好的方法是将拆分后的字符串放入
列表中。使用其中的数据将更容易。我认为二维数组不是正确的方法。看看这个例子:

List<string[]> splittedList = new List<string[]>();

string[] list = File.ReadAllLines("c:/yourPath.txt");

foreach (string s in list)
{
    splittedList.Add(s.Split(','));
}
List splittedList=new List();
string[]list=File.ReadAllLines(“c:/yourPath.txt”);
foreach(列表中的字符串s)
{
splittedList.Add(s.Split(',');
}

然后您可以根据需要遍历
列表。

您不应该创建这样的静态数组,应该使用可以根据需要增长的
列表

//Read the lines
string[] lines = System.IO.File.ReadAllLines(@"food.txt");

//Create the list
List<string[]> grid = new List<string[]>();

//Populate the list
foreach (var line in lines) grid.Add(line.Split(','));

//You can still access it like your 2D array:
Console.WriteLine(grid[1][1]); //prints "orange"
//读这些行
string[]lines=System.IO.File.ReadAllLines(@“food.txt”);
//创建列表
列表网格=新列表();
//填充列表
foreach(行中的变量行)grid.Add(line.Split(',');
//您仍然可以像二维阵列一样访问它:
Console.WriteLine(网格[1][1])//打印“橙色”

您是特别需要2d阵列还是可以使用更好的方案?。例如,一个列表。场景。所以我需要一些东西,它可以将文件的内容存储在元素中,以“,”分隔。所以在将来我可以选择X1,Y1(橙色)。可能重复感谢您的帮助。但是,如果它们的数量不同,我将如何访问Y坐标中的,例如,类型1可能有四个食物项目,类型3可能有一个项目。我如何使用循环来实现这一点?谢谢你的帮助