与其他"编辑文本文件"相比,我遇到了一个稍微不同的问题。问题。例如,我有以下文本文件:
Cal Test
{
Feature 0.0 1.0 2.0 7.5
Feature 0.0 -1.0 2.0 -7.5
.etc
}
假设我在此文本文件中有大约一百Feature
行。基本上,数字代表数据点;所以前两个数字代表数据点:(0.0, 1.0)
,第二个数字代表第二个数据点:(2.0, 7.5)
;它表示另一个接收文本文件的程序中的一行。
我想做的是逆时针旋转每个数据点90度;这意味着(a, b)
→(b, -a)
。我知道如何做到这一点,逐行阅读和编辑点,我想知道,是否有一种更有效的方式来交换(a,b)并附加负数?
答案 0 :(得分:0)
如前所述,不是一个很大的改进,但
使用ReadLines()获取项目列表,就像您在
上所做的那样var list = new List<string>(); // or whatever structure you use to keep items in memory
foreach(var line in File.ReadLines(anInFileStr))
{
var lineArray = line.Split(' ') ;
list.Add(string.format("{0} {2} {1} {3}", lineArray[0], -int.Parse(lineArray[1]), lineArray[2], lineArray[3]));
}
File.WriteAllLines(anOutFile, list)