C# 在2d或交错数组中使用逗号和新闻空间拆分字符串,并在c中访问项目#

C# 在2d或交错数组中使用逗号和新闻空间拆分字符串,并在c中访问项目#,c#,arrays,split,newline,comma,C#,Arrays,Split,Newline,Comma,嗨,我有一个这样的文本文件,很多行2列 CF7CED1BF035345269118A15EF2D45A06, product1 CF7CED1BF035345269118A15EF2D45A09, product2 .... ... ... ... 我需要拆分此字段并访问每个字段,更准确地说,我需要创建一个循环,创建许多文件,如product1.txt product2.txt等,并将代码括在其左侧 因此,我需要使用所有行的列[2]的文件名创建文件,并将列[1]作为每行的值括起来 我知道如何在

嗨,我有一个这样的文本文件,很多行2列

CF7CED1BF035345269118A15EF2D45A06, product1
CF7CED1BF035345269118A15EF2D45A09, product2
....
...
...
...
我需要拆分此字段并访问每个字段,更准确地说,我需要创建一个循环,创建许多文件,如product1.txt product2.txt等,并将代码括在其左侧

因此,我需要使用所有行的列[2]的文件名创建文件,并将列[1]作为每行的值括起来

我知道如何在数组中执行基本操作,比如读取所有行并存储它们,但我不知道如何创建一个循环来读取第1行的字段1和字段2,创建文件并存储(我知道如何读取并保存到文件),然后继续下一行2,再继续执行字段1和字段2,依此类推

有人建议使用锯齿状阵列比2d阵列更快

非常感谢你

使用ReadLines时,可以开始枚举 返回整个集合之前的字符串;使用 ReadAllLines,必须等待整个字符串数组 在您可以访问数组之前返回。因此 使用非常大的文件时,ReadLines可以更高效。”

使用ReadLines时,可以开始枚举 返回整个集合之前的字符串;使用 ReadAllLines,必须等待整个字符串数组 在您可以访问数组之前返回。因此 使用非常大的文件时,ReadLines可以更高效。”


您是否需要保留这些内容以备将来使用?如果目的是读取并将内容保存到单独的文件中,则不需要单独的数组

using (var reader = new StreamReader(@"input.txt"))
        {
            while (!reader.EndOfStream)
            {
                var inputText = reader.ReadLine();
                var splitText = inputText.Split(',');

                File.AppendAllLines(splitText[1] + ".txt", new List<string> {splitText[0]});
            }
        }
使用(var reader=newstreamreader(@“input.txt”))
{
而(!reader.EndOfStream)
{
var inputText=reader.ReadLine();
var splitText=inputText.Split(',');
AppendAllLines(splitText[1]+“.txt”,新列表{splitText[0]});
}
}

您需要保留这些内容以备将来使用吗?如果目的是读取并将内容保存到单独的文件中,则不需要单独的数组

using (var reader = new StreamReader(@"input.txt"))
        {
            while (!reader.EndOfStream)
            {
                var inputText = reader.ReadLine();
                var splitText = inputText.Split(',');

                File.AppendAllLines(splitText[1] + ".txt", new List<string> {splitText[0]});
            }
        }
使用(var reader=newstreamreader(@“input.txt”))
{
而(!reader.EndOfStream)
{
var inputText=reader.ReadLine();
var splitText=inputText.Split(',');
AppendAllLines(splitText[1]+“.txt”,新列表{splitText[0]});
}
}

您可以只使用(文件名、文件句柄)对数组。当您在中读取一行时,在数组中搜索文件名,如果文件名在其中,则写入该文件,否则,打开一个新文件,将文件名和句柄(或我应该说的文件对象)附加到数组中,然后写入新文件。这有意义吗?你试过什么吗?你可以只使用一个(文件名,文件句柄)对数组。当您在中读取一行时,在数组中搜索文件名,如果文件名在其中,则写入该文件,否则,打开一个新文件,将文件名和句柄(或我应该说的文件对象)附加到数组中,然后写入新文件。有道理吗?你试过什么吗?