Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.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#,我正在寻找一个解决这个问题的方法,这个方法让我很难接受:我试图用这个代码从一个.txt文件中读取文本。行Monsters[i,j]=string(col.Split(“”))给我带来麻烦,告诉我字符串是无效的表达式。该文件是字符及其属性的列表,以空格分隔。提前谢谢 String input = File.ReadAllText(@"CharacterAttributes.txt"); int a = 0, b = 0; string[,] Monsters = new string[24,11

我正在寻找一个解决这个问题的方法,这个方法让我很难接受:我试图用这个代码从一个.txt文件中读取文本。行
Monsters[i,j]=string(col.Split(“”))给我带来麻烦,告诉我字符串是无效的表达式。该文件是字符及其属性的列表,以空格分隔。提前谢谢

String input = File.ReadAllText(@"CharacterAttributes.txt");

int a = 0, b = 0;
string[,] Monsters = new string[24,11];
foreach (var row in input.Split('\n'))
{
    b = 0;
    foreach (var col in row.Trim().Split(' '))
    {
        Monsters[a, b] =  string(col.Split(' '));
        b++;
    }
    b++;
}

从我看来:

  • 您已经按行分隔了每个字符:
    input.Split('\n')中的var row
  • 您已经按空格分隔了字符的每个属性:
    var col in row.Trim().Split(“”)
所以,当我们谈到
Monsters[a,b]=string(col.Split(“”))
(顺便说一句,
string()
是无效语法)时,我看不出有任何理由进一步拆分,而您实际要做的是将
col
的值存储到
Monsters[a,b]
,假设
a
是每个字符,
b
是所述字符的属性


怪物[a,b]=col很可能就是您想要的。

从我看来:

  • 您已经按行分隔了每个字符:
    input.Split('\n')中的var row
  • 您已经按空格分隔了字符的每个属性:
    var col in row.Trim().Split(“”)
所以,当我们谈到
Monsters[a,b]=string(col.Split(“”))
(顺便说一句,
string()
是无效语法)时,我看不出有任何理由进一步拆分,而您实际要做的是将
col
的值存储到
Monsters[a,b]
,假设
a
是每个字符,
b
是所述字符的属性


怪物[a,b]=col很可能就是您想要的。

在拆分中使用RemoveEmptyEntries选项。在创建空entires的列之间可能有多个空格。语句字符串(…)是什么?C#中没有这种东西。谢谢,@jdweng,我会的。我的属性之间确实有制表符。@chameleon86,那是我试图过度思考的东西。myStr.Split(new char[]{'','\t'},StringSplitOptions.removemptyEntries);在拆分中使用选项RemoveEmptyEntries。在创建空entires的列之间可能有多个空格。语句字符串(…)是什么?C#中没有这种东西。谢谢,@jdweng,我会的。我的属性之间确实有制表符。@chameleon86,那是我试图过度思考的东西。myStr.Split(new char[]{'','\t'},StringSplitOptions.removemptyEntries);谢谢我对这个很陌生,我倾向于把事情复杂化。我确实看到了无效的语法,这是我困惑的原因。数组让我进入循环。向上投票。非常有帮助。谢谢!我对这个很陌生,我倾向于把事情复杂化。我确实看到了无效的语法,这是我困惑的原因。数组让我进入循环。向上投票。非常有用。