Я все еще новичок в C# и пытаюсь понять объекты списка.ASP.NET MVC Выберите значение списка, используя ключ
У меня есть объект списка с парами ключ/значение в нем, заполненный из базы данных (эта часть работает). Затем я хочу выбрать значение из этого списка, используя «ключ». Из того, что я прочитал, я думаю, что Linq может быть лучшим способом сделать это, однако я не могу полностью решить синтаксис, который мне нужен.
У меня есть список объектов следующим образом:
// Create a list of Items from the database, where Value is the 'key' and Text is the 'value'
IEnumerable<SelectListItem> ItemList = dbLists.ItemList.Select(x => new SelectListItem { Text = x.Description, Value = x.Id.ToString() });
Затем я хочу, чтобы заполнить еще одну переменную с описанием выбранного элемента в модели, где модель только сохраняет идентификатор. Я пробовал различные запросы linq Where
и Select
, но не могу это обработать.
Самый простой способ, которым я могу думать, чтобы объяснить, что я пытаюсь добиться, чтобы использовать SQL синтаксис,
string SelectedItemDescription = SELECT Text FROM ItemList WHERE ItemList.Value = model.ItemCode
Пример сценария будет что-то вроде:
ItemList
{
(Value = "1", Text = "Item 1"),
(Value = "2", Text = "Item 2"),
(Value = "3", Text = "Item 3"),
...
};
model.ItemCode = 2;
// How do I make:
SelectedItemDesctiption = "Item 2";
Хотелось бы надеяться, что имеет смысл.
Спасибо.
Ваш код будет бросать исключение нулевой ссылки, если этот пункт не в 'строки SelectedItemDescription список –
= ItemList.SingleOrDefault (пункт => item.Value == model.ItemCode) .Text; ' будет делать это прямо –
@DavidPilkington я использую' 'SingleOrDefault'' –