我在C#中进行简单的文本冒险,我想知道是否可以从.txt文件中读取某些行并将它们分配给字符串。
我知道如何从.txt文件中读取所有文本但是我如何将某些行的内容分配给字符串呢?
答案 0 :(得分:2)
您是否考虑过ReadAllLines方法?
它返回一个行数组,您可以从中选择所需的行。
因此,例如,如果您想选择第3行(假设文件中有3行):
string[] lines = File.ReadAllLines(path);
string myThirdLine= lines[2];
答案 1 :(得分:1)
可能最简单(也是最便宜的内存消耗)是File.ReadLines
:
String stringAtLine10 = File.ReadLines(path).ElementAtOrDefault(9);
请注意,如果文件中的行少于10行,则为null
。请参阅:ElementAtOrDefault
。
这只是StreamReader
的简洁版本和计数器变量,每行都会增加。
答案 2 :(得分:0)
作为一种高级替代方案:ReadLines加上一些LINQ:
var lines = File.ReadLines(myFilePath).Where(MyCondition).ToArray();
其中MyCondition
:
bool MyCondition(string line)
{
if (line == "something")
{
return true;
}
return false;
}
答案 3 :(得分:0)
如果您不想加载所有行atonce
using(StreamReader reader=new StreamReader(path))
{
String line;
while((line=reader.ReadLine())!=null)//process temp
}
答案 4 :(得分:0)
以下是一个如何将行分配给字符串的示例,您无法确定哪个行是哪个via字段,您必须自己选择它们。 这是您要分配的字符串的行。 例如,你想要第一行,你想要哪一行而不是零,你想要第八行,你定义哪一行为八。
string getWord(int which)
{
string readed = "";
using (Systen.IO.StreamReader read = new System.IO.StreamReader("PATH HERE"))
{
readed = read.ReadToEnd();
}
string[] toReturn = readed.Split('\n');
return toReturn[which - 1];
}