我有一个客户列表,我需要访问(从.txt文件)并更改其任何行,以及(例如,更改电话号码)
我已经有一个打开.txt文件,从中读取文件的代码,允许我添加新信息,然后将其保存到同一文件中。因此,该列表将更新。同样,它还允许我在列表中按关键字搜索。
public static void ShowClientList() {
string file =File.ReadAllText(@"C:\Users\Adminl\Documents\clients.txt");
Console.WriteLine(file);
Console.WriteLine();
}
public static void AddClient()
{ Console.WriteLine("Civ");
string civility = Console.ReadLine();
Console.WriteLine("Name");
string name = Console.ReadLine();
Console.WriteLine("Surname");
string surname = Console.ReadLine();
Console.WriteLine("Age");
string age = Console.ReadLine();
Console.WriteLine("Telephone No");
string telephone = Console.ReadLine();
string appendText = civility +','+" "+ name + ',' + " " + surname + ',' + " " + age + ',' + " " + telephone + Environment.NewLine; // This text is always added, making the file longer over time if its not deleted
string path = @"C:\Users\Adminl\Documents\clients.txt"; // FILE that either exist or no
File.AppendAllText(path, appendText);
}
public static void SearchClients()
{
string line;
StreamReader clients = new StreamReader(@"C:\Users\Adminl\Documents\clients.txt"); // Read the file and display it line by line.
List<string> lines = new List<string>();
while ((line = clients.ReadLine()) != null)
{
lines.Add(line);
}
Console.WriteLine("Please insert the criteria: ");
string choose = Console.ReadLine();
for (int i = 0; i < lines.Count; i++)
{
if (lines[i].ToUpper().Contains(choose.ToUpper())) // search any part
{
Console.WriteLine(lines[i]);
}
}
}
我想从(客户端)列表中选择该行,并能够对其进行更改。如果可能,还为每行指定一个唯一的编号。对不起,我是一个新手,所以请不要打我太多。非常感谢您的帮助!
答案 0 :(得分:1)
您可以通过使用 List.FindIndex 方法匹配值来获取特定索引。在代码中,您可以通过匹配声明如下的 choose 值来找到。
string choose = Console.ReadLine();
int index= lines.FindIndex(value => value== choose);
此外,您可以通过如下所示直接将值传递给索引来更改行
lines[index] = "ModifiedLine";
答案 1 :(得分:0)
对于您的另一个问题“如果可能,还请给每行唯一的数字。”
答案是,您可能无法使用 List 为行指定唯一编号,而是可以尝试 Dictionary (字典),因为它具有唯一的键列表没有。请找到使用列表和字典的声明
列表
List<string> lines = new List<string>();
词典
Dictionary<int, string> lines = new Dictionary<int, string>();
您可以在link
中获取有关字典的更多详细信息