如何使用c#将文本附加到平面文件中的行尾?基本上,我想在每一行的末尾附加行号。
答案 0 :(得分:2)
这是一个快速的单行版本,使用Linq' Enumerable.Select索引和String.Join Method (String, String[])重建行。
string path = "Path to your flat file";
var numberedText = String.Join(Environment.NewLine, File.ReadAllLines(path).Select((line, index) => string.Join(" ", line.Trim(), index + 1)));
Console.WriteLine(numberedText);
结果字符串在每行的末尾都有行号。
答案 1 :(得分:1)
只是MasterXD解决方案的快速重构:
var linesInText = stringWithText.Split(Environment.NewLine);
StringBuilder stringWithRowNumbers = new StringBuilder();
var row = 1;
foreach (var line in linesInText)
{
stringWithRowNumbers.Append(line);
stringWithRowNumbers.Append(row++);
stringWithRowNumbers.Append(Environment.NewLine);
}
string result = stringWithRowNumbers.ToString();
使用StringBuilder将比简单的字符串连接更好地执行,并且被认为是此用例中的最佳实践。
答案 2 :(得分:0)
通过平面文件,我想你的意思是一个普通的文本文件?
首先,你想要将一段文字拆分成它的线条。这可以通过以下方式完成:
string[] linesInText = stringWithText.Split('\n');
字符\n
代表一个新行。因此,每当出现“新线”时,就会分开。功能Split
将字符串分成若干部分,其中分隔符作为输入。然后将这些部件制成一个字符串数组。在这种情况下,文本或字符串中的所有行都将变为数组。
现在您要将数字添加到每行的末尾。这可以通过以下方式完成:
string stringWithRowNumbers = "";
for (int i = 0; i < linesInText.Length; i++) // Go through all lines
{
stringWithRowNumbers = linesInText[i] + "YourNumbers" + "\n"; // The old/first line + your numbers + new line
}
现在你应该在所有行的末尾都有一个包含数字的字符串。
我希望这会有所帮助。
编辑:我刚刚意识到你要求行号。这是正确的代码。string stringWithRowNumbers = "";
for (int i = 0; i < linesInText.Length; i++) // Go through all lines
{
// The space is intentional. If there is no space, then the number will not have any space between itself and the line
stringWithRowNumbers = linesInText[i] + " " + (i + 1) + "\n"; // The old/first line + row number + new line
}