C#拆分成多个数组

Posted

技术标签:

【中文标题】C#拆分成多个数组【英文标题】:C# Split into multiple arrays 【发布时间】:2021-08-14 14:13:57 【问题描述】:

我有一种情况,我需要通过拆分逗号并将列存储在数组中来拆分 1 个 csv 文件

这是 csv 文件的一部分:

Go,noowner,nocolour,0,0,0,0,-200,0,0,0,0,0,0,1301,985
Vine Street,bank,brown,60,30,50,50,4,20,60,180,320,450,0,1190,985
Community Chest,noowner,nocolour,0,0,0,0,0,0,0,0,0,0,0,1100,985
Coventry Street,bank,brown,60,30,50,50,2,10,30,90,160,250,0,1025,985
Income Tax,noowner,nocolour,0,0,0,0,200,0,0,0,0,0,0,935,985

提前感谢您的帮助 亚历克斯

【问题讨论】:

你能分享更多细节吗?你想得到什么样的输出? 感谢您的回复,我希望将第一列(名称)存储在一个数组中,然后存储在另一个数组中的另一列(所有者)中,然后存储在数组中的另一列(颜色)中。希望这是有道理的 @Alex.Duffield12:为什么要将每一列存储在一个单独的数组中,该数组只包含一个字符串?您可以通过索引访问单个数组中的每个信息,例如fieldArray[0] 返回名称,fieldArray[1] 返回所有者。 (相应地在下面编辑my answer) 【参考方案1】:

所以没有标题?只需选择所有行并用逗号分隔它们:

string[][] allLinesFields = File.ReadLines(path)
    .Select(line => line.Split(','))
    .Where(array => array.Length == 16)
    .ToArray();

您可以通过索引访问所有信息,例如:

string nameOfFirstLine = allLinesFields[0][0];
string ownerOfFirstLine = allLinesFields[0][1];
string colorOfFirstLine = allLinesFields[0][2];
// and so on...

或使用循环迭代所有:

foreach(string[] fields in allLinesFields)

    string name = fields[0];
    string owner = fields[1];
    string color = fields[2];

【讨论】:

以上是关于C#拆分成多个数组的主要内容,如果未能解决你的问题,请参考以下文章

C#:如何将多个字符串拆分为二维数组?

如何使用 REGEX 将作者拆分为对象或数组 C#?

js数组移除制定对象 数组拆分成多个数组

JavaScript将数组拆分成多个长度的区块

JavaScript将数组拆分成多个长度的区块

JavaScript将数组拆分成多个长度的区块