替换列表C#中的字符串

Ila*_*321 4 c# string foreach

我一直在编写一个程序,用于存储学生姓名和年龄(名字,姓氏,年龄在.txt文件中).我现在正在制作"删除学生"部分,当我希望用户选择要删除的名称(通过切断文件名的.txt扩展名来打印)时,它不会替换".txt"部分没有.
代码是:

    string inputSel; // Selection string for delete
    Console.WriteLine(" -- Deleting Grade {0} -- ", grade);
    Console.WriteLine("- Enter a student name to delete: ");
    foreach (string file in fileNames)
    {
        file.Replace(".txt", "");
        studentNames.Add(file);
        Console.WriteLine(file); // debug
    }
    foreach (string name in studentNames)
    {
        Console.Write("{0}\t", name);
    }
    Console.WriteLine();
    Console.Write("> ");
    inputSel = Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

其中fileNames是a List<string>,它是此代码所在方法的参数.schoolNames也是a List<string>,它存储名称(文件名不包含.txt),但由于某种原因,它仍然使用.txt打印名称.
长话短说,它不会取代".txt""".

Kam*_*ski 8

这是因为String.Replace返回值,而不是修改,请参见此处

file = file.Replace(".txt", "");
Run Code Online (Sandbox Code Playgroud)

我建议使用

file = Path.GetFileNameWithoutExtension(file);
Run Code Online (Sandbox Code Playgroud)

Path.GetFileNameWithoutExtension将适用于所有扩展,它看起来更干净,并说明在那里做了什么:)