Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.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# - Fatal编程技术网

C# 从带分隔符的字符串创建多维数组

C# 从带分隔符的字符串创建多维数组,c#,C#,我有一个逗号分隔的字符串,如下所示: string myString = "1,a,b,C1,,#2,d,e,C2,,#3,f,g,C3,,#4,h,i,C4,,#"; 这基本上是来自csv文件的数据,我使用reader从该文件中读取数据 在上面的字符串中,“”表示数据delimeter,“#”表示文件的EOL myString = myString.TrimEnd('#'); //Removing extra # in the end. //Result of above 1,a,b,C1,

我有一个逗号分隔的字符串,如下所示:

string myString = "1,a,b,C1,,#2,d,e,C2,,#3,f,g,C3,,#4,h,i,C4,,#";
这基本上是来自csv文件的数据,我使用reader从该文件中读取数据

在上面的字符串中,“”表示数据delimeter,“#”表示文件的EOL

myString = myString.TrimEnd('#'); //Removing extra # in the end.
//Result of above 1,a,b,C1,,#2,d,e,C2,,#3,f,g,C3,,#4,h,i,C4,,
我想将上面的内容转换成多维数组,循环读取每行数据的值,并创建我自己的json

所以我从下面的代码开始。这将产生行和列计数

int rowCount = result.TrimEnd('#').Split('#').Count();
int colCount = result.TrimEnd('#').Split('#')[0].TrimEnd(',').Split(',').Length;

//Defining my object which I want to fill.
JObject myObject = new JObject();
下面我想通过行和列循环,从每一行和每一列获取数据值

for (int row = o ; row <= rowCount; row++)
{
    for (int col = 0; col <= colCount; col++)
    {
       //So here I want to do something like:
       var rowValue = multiArray[row][col];

       //After getting the row value below is the logic to add to my object
       if(col == 0)
       {
            myObject.Add("first", rowValue);    
       }
       else if(col == colCount)
       {
            myObject.Add("last", rowValue);
       }
       else
       {
            myObject.Add(col, rowValue);
       }
    }
}

下面的代码创建并填充多维数组,但数据有问题。由于额外的逗号,您的json看起来不像示例json

string myString = "1,a,b,C1,,#2,d,e,C2,,#3,f,g,C3,,#4,h,i,C4,,#".TrimEnd('#');

var rows = myString.Split('#');
var rowCount = rows.Length;
var columnCount = rows[0].Split(',').Length;

string[,] multiArray = new string[rowCount, columnCount];

for (int i = 0; i < rowCount; i ++)
{
    var values = rows[i].Split(',');
    for (int j = 0; j < columnCount && j < values.Length; j++)
    {
        multiArray[i,j] = values[j];
    }
}
string myString=“1,a,b,C1,,#2,d,e,C2,,#3,f,g,C3,,#4,h,i,C4,,#”;
var rows=myString.Split(“#”);
var rowCount=rows.Length;
var columnCount=行[0]。拆分(',')。长度;
字符串[,]多数组=新字符串[rowCount,columnCount];
对于(int i=0;i

我从中得到的结果是,有一个4x6数组,每行只有4个值。

如果您在给定的起始字符串
“1,a,b,C1,,#2,d,e,C2,,#3,f,g,C3,,#4,h,I,C4,,#
那么你被困在哪里?@MattBurland我的最终json将取决于文件的行和列,即字符串。我将负责创建json,只是我不知道如何在上面的代码中创建多数组“multiArray”,我可以从中循环。我已经用json更新了我的帖子。@Oleehdufur正如我在帖子中提到的,我不知道如何创建“多数组”以便循环。@user1563677-您有一个示例输入,该示例输出是什么?谢谢您的检查和回复。我不得不用我的代码稍微调整一下,但效果很好。
string myString = "1,a,b,C1,,#2,d,e,C2,,#3,f,g,C3,,#4,h,i,C4,,#".TrimEnd('#');

var rows = myString.Split('#');
var rowCount = rows.Length;
var columnCount = rows[0].Split(',').Length;

string[,] multiArray = new string[rowCount, columnCount];

for (int i = 0; i < rowCount; i ++)
{
    var values = rows[i].Split(',');
    for (int j = 0; j < columnCount && j < values.Length; j++)
    {
        multiArray[i,j] = values[j];
    }
}