C# - 如何解析文本文件(空格分隔数字)?

q09*_*987 6 .net c# string file string-parsing

给定一个由空格分隔的数据文件,

10 10 10 10 222 331 
2 3 3 4 45
4 2 2 4
Run Code Online (Sandbox Code Playgroud)

如何读取此文件并加载到Array中

谢谢

Ale*_*Aza 14

var fileContent = File.ReadAllText(fileName);
var array = fileContent.Split((string[])null, StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)

如果您只有数字并且需要一个int列表,那么您可以这样做:

var numbers = array.Select(arg => int.Parse(arg)).ToList();
Run Code Online (Sandbox Code Playgroud)


Qui*_*ith 6

这取决于你想要的阵列类型.如果您想将所有内容展平为一维数组,请使用Alex Aza的答案,否则,如果您想要一个映射到文本文件中的行和元素的二维数组:

var array = File.ReadAllLines(filename)
                .Select(line => line.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries))
                .Where(line => !string.IsNullOrWhiteSpace(line)) // Use this to filter blank lines.
                .Select(int.Parse) // Assuming you want an int array.
                .ToArray();
Run Code Online (Sandbox Code Playgroud)

请注意,没有错误处理,因此如果解析失败,上面的代码将引发异常.