c# - 如何从 C# 中的文件中读取二维数组/矩阵,它与制表键分隔
问题描述
我正在尝试从 txt 中读取矩阵,但它似乎根本不起作用。不知道行数和列数怎么办,所以文件中的矩阵每次都可以不一样?
提前致谢!
解决方案
您可以尝试使用Linq来查询文件:
using System.IO;
using System.Linq;
...
int[][] result = File
.ReadLines(@"c:\myMatrix.txt")
.Where(line => !string.IsNullOrWhiteSpace(line))
.Select(line => line
.Split(new char[] { '\t', ' ' }, StringSplitOptions.RemoveEmptyEntries)
.Select(item => int.Parse(item))
.ToArray())
.ToArray();
请注意,通常是锯齿状数组,即数组数组( int[][]
) 比 2d one ( int[,]
)更方便
编辑:如果您坚持使用2D 数组,您可以从锯齿状数组中获取它:
int[,] result2D = new int[
result.Length,
result.Any() ? result.Max(line => line.Length) : 0];
for (int row = 0; row < result.Length; ++row)
for (int col = 0; col < result[row].Length; ++col)
result2D[row, col] = result[row][col];
推荐阅读
- javascript - 在图像 (PNG) 中转换 ZPL (Base64)
- python - 在 Apache Airflow 中,您可以依赖先前运行的任务吗?
- reactjs - 不允许发布方法 drf
- python - Anaconda Navigator Conda HTTP 错误 MacBook Pro
- sql - 如何在有多个条件的 powerBI 中进行条件连接
- java - 使用 CompletableFuture.whenComplete 控制流
- angular - Chart.elements.Rectangle.prototype.draw 影响同一页面中的其他图表(Angular)
- python - 有没有办法用 python 创建一个包含重音字母的文件,然后用 C# 读取它?
- python - 具有任务队列的就绪服务器
- java - 更改数组长度而不创建新数组?