将返回的用户输入添加到字符串列表

Add returned user input to list of strings

我正在开发一个使用不同方法获取用户输入的项目,我想将用户输入添加到列表中。

我的代码如下所示:

public string GetValidName()
    {
        Console.WriteLine("Let's get you registered!");
        Console.WriteLine("Enter your full name: ");

        string input = Console.ReadLine();
        bool validString = false;
        while (validString != true)
        {
            if (String.IsNullOrEmpty(input))
            {
                Console.WriteLine("Not a valid input.");
                validString = false;
            }
            else
            {
                validString = true;
            }
        }

        return input;
    }

列表存在于同一个class中,声明为public List<string> students = new();

我已经试过 return students.Add(input); 但那是不可能的并且给出了错误

Cannot implicitly convert type 'void' to 'string'

Edit 这个方法是通过这个方法调用的,经过编辑修改,现在看起来像这样;

    public void Register()
    {
        students.Add(GetValidName());
    }

要打印列表中的所有项目,我使用这段代码:

    public void AttendenceList()
    {
        Students list = new();

        Console.WriteLine("All students attending class today:\r\n");
        foreach (var item in list.students)
        {
                Console.WriteLine(item);
        }
    }

当 foreach 循环运行时,它只打印 Console.WriteLine,而不是列表中的任何项目。

如果你这样做 Students list = new(); 你初始化你的列表不要那样做。

就像在 class 中定义的学生列表一样,您可以这样写:

public void AttendenceList()
{
    Console.WriteLine("All students attending class today:\r\n");
    foreach (var item in students)
    {
            Console.WriteLine(item);
    }
}