【发布时间】:2015-05-19 05:16:11
【问题描述】:
StreamReader sr = new StreamReader(path);
String contents = "LINE";
while (!string.IsNullOrWhiteSpace(contents))
{
contents = sr.ReadLine();
foreach (TSPlayer plr in newPlayers.Keys)
{
if (plr.Name.ToLower() == contents.ToLower() || plr.UserAccountName.ToLower() == contents.ToLower())
{
TShock.Utils.ForceKick(plr, "Bad name. GO AWAY!");
newPlayers.Remove(plr);
}
}
}
sr.Close();
我正在从一个包含 4 行的文本文件中读取所有值(没有空行)。上面的 while 循环只从文件中读取前 2 个值,然后停止。
在将文件内容拆分为“\n”后,我尝试使用常规 For 循环和 Foreach 循环,但发生了同样的事情。
我不知道为什么会这样。我确定该数组有 4 个元素,因为我在索引处手动显示了值(例如,内容 [2])。所以它是从文件中正确读取的。
只是每当我尝试访问它停止的第三个值时。
感谢您的帮助,非常感谢。
【问题讨论】:
-
您的文件中可能有一个空行,或者一行仅包含空格或制表符。试试:
var lines = File.ReadLines(path).Where(l => !string.IsNullOrWhiteSpace(l)).ToArray();看看你有多少行。