c# - 从文本文件或作为类获取属性
问题描述
我想读取文本文件并将数据存储为类或属性。文本文件将类似于以下内容:
BoardSize: 4, 4
TurtlePos: 1, 1
TurtleDir: North
在Java中,我可以用这个做类似的事情:
List<Integer> boardSizes = stringArrayToIntList(configFile.getProperty(BOARD_SIZE).split(","));
但我根本无法在 C# 中弄清楚。
使用 linq 的东西也很方便。
解决方案
没有错误处理
var lines = System.IO.File.ReadAllLines("path");
string[] Split(string line) => line.Split(new[] { ':', ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);
var line0 = Split(lines[0]);
var line1 = Split(lines[1]);
var line2 = Split(lines[2]);
// Using anonymous types - in real life you probably want concrete classes.
var board = new { N = Int32.Parse(line0[1]), M = Int32.Parse(line0[2])};
var turtle = new { X = Int32.Parse(line1[1]), Y = Int32.Parse(line1[2]), Dir = line2[1] };
对于我使用的测试:
var text = @"BoardSize: 4, 5
TurtlePos: 2, 3
TurtleDir: North";
var lines = text.Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
推荐阅读
- c++ - 为什么unique_ptr
隐式转换为 unique_ptr ? - ti-nspire - TI-Nspire 从求解中保存 2 个不同的变量
- virtual-machine - 用于删除 ARM 虚拟磁盘的 Azure 角色
- winapi - COM : OUT_OF_PROCESS 对象的执行上下文
- r - 如何仅在月份绘制 x 轴位置数据?
- vba - VBA 通过 ExportAsFixedFormat 导出 PDF 类型:=xlTypePDF
- c - 在 MVP 中,视图如何知道是否允许显示?
- laravel - 如何在 Laravel 中为 SELECT 标签设置旧值
- c# - 如何停止每帧调用一次更新函数
- java - 字符串替换不适用于第一次出现