List<int> userList = new List<int>();
int input = 0;
int names;
int age;
//string numberInput;
while (input != 5)
{
Console.WriteLine("ADD NAME TO LIST: ");
names = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ADD USER AGE: ");
age = Convert.ToInt32(Console.ReadLine());
userList.Add(new userList { name = names , a = age });
userList.Add(names);
input++;
}
Console.ReadKey();
userList продолжает выдавать ошибку?
userList является переменной, но используется как тип
List<int>.Add(new userList совершенно недействителен. Вы либо хотите List<int>, либо List<userList>(как только вы получите свое приложение для компиляции) — я рекомендую вам научиться отлаживать свой код во время выполнения. Вот некоторые из множества доступных ресурсов: Навигация по коду с помощью отладчика Visual Studio, Научитесь отлаживать код C# с помощью Visual Studio. и Отладка кода C# в Visual Studio | Мош.
@Igor Попытка отлаживать код, который не компилируется, не кажется лучшим выбором
Когда вы выполняете свой код во время выполнения, проверьте, есть ли у вас исключение, и проверьте входные/выходные данные. Если вы получаете исключение, посмотрите, сможете ли вы понять, почему, основываясь на входных/выходных данных и выполняемой строке кода.
@CamiloTerevinto - да, я думаю, мой комментарий должен заключаться в том, что приложение может компилироваться.
Спрашивать имя и пытаться преобразовать его в Int32 также сбивает с толку. Что вы пытаетесь сделать здесь?
Изменение имени переменной «names» на «name» должно помочь вам сохранить код в чистоте. Вы пытаетесь добавить в список «идентификатор», за которым следует «возраст», или вы пытаетесь добавить оба как объект (идентификатор и возраст хранятся в одном индексе)?
@gkelly - ах, я понял свою проблему. У меня нет класса, чтобы создать объект, который будет хранить данные! Благодарю.





Вероятно, вы пытаетесь сделать что-то вроде приведенного ниже кода. Лучший способ попрактиковаться и увидеть, как работает код, — это создать и отладить его. Только тогда вы увидите, что происходит так, как вы этого хотите, а что не работает.
Чтобы ваш код работал правильно, вам нужно будет создать свой List не из integers, а из another class, у которого есть name и ageatributor.
Взгляните, я поставил класс Users, чтобы увидеть, как это выглядит.
class Users
{
public string names { get; set; }
public int age { get; set; }
public Users(string vnames, int vage)
{
names = vnames;
age = vage;
}
}
Уже функция, которая собирает данные пользователя, должна создать list из users.
List<Users> userList = new List<Users>();
После этого просто соберите данные и занесите в список.
userList.Add(new Users(names, age));
Взгляните на полную функцию сейчас.
private static void CreateList()
{
List<Users> userList = new List<Users>();
for (int i = 0; i != 2; i++)
{
Console.WriteLine("ADD NAME TO LIST: ");
var names = Console.ReadLine();
Console.WriteLine("ADD USER AGE: ");
var age = Convert.ToInt32(Console.ReadLine());
userList.Add(new Users(names, age));
}
Console.WriteLine("...");
Console.ReadKey();
}
Отлаживайте строку за строкой и смотрите, что происходит, это красиво.
у вас действительно есть тип список пользователей или сорт? строка с новый список пользователей предполагает, что вы это делаете.