我在向文本文件中的用户添加付款金额时遇到问题。这是我目前的代码:
public string payout = 1;
public static void AddPayout(int tPayout, string nickx) {
if (UserIsSub(nickx)) {
tPayout = payout * 2;
File.WriteAllLines("loyalty.txt", File.ReadAllLines("loyalty.txt")
.Select(x => {
if (x.StartsWith(nickx)) return nickx + " " + tPayout + "\n\r";
return x;
}));
} else {
tPayout = payout + 1;
File.WriteAllLines("loyalty.txt", File.ReadAllLines("loyalty.txt")
.Select(x => {
if (x.StartsWith(nickx)) return nickx + " " + tPayout + "\n\r";
return x;
}));
}
}
public static bool UserIsSub(String value)
{
if (File.ReadAllLines("subscribers.txt").Contains(value.ToLower())) { return true; }
else { return false; }
}
到目前为止,它只是添加了相同的人,并保持数字相同。我能做些什么改变?
答案 0 :(得分:0)
我猜你使用了错误的换行代码,
尝试使用\r\n
代替\n\r
(顺便说一句,我认为你不需要任何新行标志,因为writealllines也应该写新行)
然后,你应该在select之后插入.ToArray,因为文件仍然可以打开
然后,您将使用新金额替换代码行。如果要添加旧的,则需要解析该行并替换结果。