C#通过ID搜索txt文件并删除文件中以\n分隔的整行
C# Search txt file by ID and delete whole line which in file is separated by \n
我想按 ID 搜索我的 txt 文件并删除与此 ID 相关的所有数据。
我的 txt 文件格式如下:
235678876
约翰
母鹿
www.niezdam.com
565678053
露西
帕特尔
www.google.com
每个用户由空行分隔,字符串中的每个单词都在新行中。我试过这段代码:
Console.WriteLine("Enter the item ID want to remove: ");
string itemId = Console.ReadLine();
var editedData = lines.Where(line => !line.StartsWith(itemId, StringComparison.OrdinalIgnoreCase) && !line.EndsWith(" "));
File.WriteAllLines(filePath, editedData);
因此,如果我找到 ID 为 235678876 的用户,我想删除“235678876 John Doe www.niezdam.com”,我的代码工作正常,但它只删除 ID,而不是所有相关数据...
我怎样才能改进我的代码以获得我想要的?请给我任何东西:)
试试这个代码
for (int i = 0; i < lines.Count - 4; i += 5)
{
if (lines[i].StartsWith(itemId))
{
// Removes 5 lines, (ID, Firstname, Lastname, Link, Newline)
for (int j = 0; j <= 4; j++)
lines.RemoveAt(i);
}
}
你也可以用这个单行本
lines.RemoveRange(lines.IndexOf(itemId), 5);
我想按 ID 搜索我的 txt 文件并删除与此 ID 相关的所有数据。
我的 txt 文件格式如下:
235678876
约翰
母鹿
www.niezdam.com
565678053
露西
帕特尔
www.google.com
每个用户由空行分隔,字符串中的每个单词都在新行中。我试过这段代码:
Console.WriteLine("Enter the item ID want to remove: ");
string itemId = Console.ReadLine();
var editedData = lines.Where(line => !line.StartsWith(itemId, StringComparison.OrdinalIgnoreCase) && !line.EndsWith(" "));
File.WriteAllLines(filePath, editedData);
因此,如果我找到 ID 为 235678876 的用户,我想删除“235678876 John Doe www.niezdam.com”,我的代码工作正常,但它只删除 ID,而不是所有相关数据... 我怎样才能改进我的代码以获得我想要的?请给我任何东西:)
试试这个代码
for (int i = 0; i < lines.Count - 4; i += 5)
{
if (lines[i].StartsWith(itemId))
{
// Removes 5 lines, (ID, Firstname, Lastname, Link, Newline)
for (int j = 0; j <= 4; j++)
lines.RemoveAt(i);
}
}
你也可以用这个单行本
lines.RemoveRange(lines.IndexOf(itemId), 5);