首页 > 解决方案 > 从文本文件或作为类获取属性

问题描述

我想读取文本文件并将数据存储为类或属性。文本文件将类似于以下内容:

BoardSize: 4, 4
TurtlePos: 1, 1
TurtleDir: North

在Java中,我可以用这个做类似的事情:

List<Integer> boardSizes = stringArrayToIntList(configFile.getProperty(BOARD_SIZE).split(","));

但我根本无法在 C# 中弄清楚。

使用 linq 的东西也很方便。

标签: 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); 

推荐阅读