Когда я выбираю дату, я хочу показать имя пользователей, сделавших бронирование на эту дату, но я могу видеть только пользователя, который сделал последнюю бронь. Как я могу это исправить?C# Linq with FirstorDefault
Вот мой код
foreach (Reservation i in con.Reservations)
{
var user = con.Users.Where(se => se.id == i.user_id).FirstOrDefault();
if (i.date == date && i.hour == label4.Text)
{
label4.Text = user.Name + " " + user.Surname;
}
else
{
label4.Text = "17:00 - 18:00";
}
if (i.date == date && i.hour == label5.Text)
{
label5.Text = user.Name + " " + user.Surname;
}
else
{
label5.Text = "16:00 - 17:00";
}
if (i.date == date && i.hour == label6.Text)
{
label6.Text = user.Name + " " + user.Surname;
}
else
{
label6.Text = "18:00 - 19:00";
}
if (i.date == date && i.hour == label7.Text)
{
label7.Text = user.Name + " " + user.Surname;
}
else {
label7.Text = "19:00 - 20:00";
}
}
FirstOrDefault явно запрашивает только одно. Удалите '.FirstOrDefault()', а затем обновите свой код, чтобы обрабатывать множество строк вместо одного. – Rob
Когда я удалил .FirstOrDefault(), я получил ошибку. Я не могу использовать это -> user.Name – oEs
Да, это правильно - часть «обновите свой код, чтобы обрабатывать многие строки вместо одного», о котором я упоминал. Теперь у вас есть список пользователей. Напишите свой код, чтобы распечатать каждого пользователя в списке. Например, вы можете захотеть отделить имена запятой: 'var userNames = string.Join (", ", users.Select (u => u.Name +" "+ u.Surname))' – Rob