例如,玩家1排在第5位,而下一位玩家2打破了该记录并成为第5位,而玩家1在第6位,则需要从文件中删除第6位的玩家!
我制定了一个动作算法: 读取文件,删除内存中的行,然后将内容返回文件(覆盖)。如果文件很大,您可以阅读该行的内容并创建一个临时文件,稍后再替换原始文件。
此代码中有一个字典-键-播放器的名称,值-时间以秒为单位(越少越好)
所有结果(键和值)都以另一种形式写入文件,并以这种形式被复制到字典中,并通过标签从字典中滚动,作为最终结果,但是我无法从文件中删除播放器谁留下了评分。
我试图通过删除文件,然后仅在没有离开分级的播放器的情况下还原文件来完成此操作
file.Delete(@"C:\\file.txt")
如何在代码中删除此播放器?
private static Dictionary<string, int> AllNames()
{
return File
.ReadLines(@"C:\Users\HP\Desktop\картинки\results.txt")
.Where(line => !string.IsNullOrWhiteSpace(line))
.Select(item => item.Split(' '))
.ToDictionary(items => items[0],
items => int.Parse(items[1]));
}
private void updateRatingLabels()
{
var tops = AllNames()
.OrderBy(pair => pair.Value)
.ThenBy(pair => pair.Key, StringComparer.Ordinal)
.Take(5)
.ToArray();
for (int i = 18; i <= 22; ++i)
Controls.Find($"label{i}", true).First().Text = "";
for (int i = 28; i <= 32; ++i)
Controls.Find($"label{i}", true).First().Text = "";
for (int i = 0; i < tops.Length; ++i)
{
Controls.Find($"label{i + 18}", true).First().Text = tops[i].Key;
Controls.Find($"label{i + 28}", true).First().Text = $"{tops[i].Value / 60}:{tops[i].Value % 60:00}";
}
}