Я создаю периодическую таблицу, и я создал словарь в контроллере дома с именем dictionaryOfElements, в котором атомный номер элемента является ключом, а атомный номер элемента, символ, имя и вес - значениями.Мне нужна помощь в отображении всех значений словаря для представления из ViewModel.
Ниже представлена созданная мной модель:
public class Elements
{
public int AtomicNumber { get; set; }
public string Symbol { get; set; }
public string Name { get; set; }
public string Weight { get; set; }
public Elements()
{
//
}
public Elements(int atomic, string sym, string name, string weight)
{
this.AtomicNumber = atomic;
this.Symbol = sym;
this.Name = name;
this.Weight = weight;
}
}
Домашний контроллер, в котором я объявил словарь
public class HomeController : Controller
{
Elements Hydrogen = new Elements(1, "H", "Hydrogen", "1.008");
Elements Helium = new Elements(2, "He", "Helium", "4.0026");
Elements Lithium = new Elements(3, "Li", "Lithium", "6.94");
Elements Beryllium = new Elements(4, "Be", "Beryllium", "9.0122");
Dictionary<int, Elements> dictionaryOfElements = new Dictionary<int, Elements>();
// GET: Home
public ActionResult DisplayElements()
{
dictionaryOfElements.Add(Hydrogen.AtomicNumber, Hydrogen);
dictionaryOfElements.Add(Helium.AtomicNumber, Helium);
dictionaryOfElements.Add(Lithium.AtomicNumber, Lithium);
dictionaryOfElements.Add(Beryllium.AtomicNumber, Beryllium);
return View(dictionaryOfElements);
}
public ActionResult Index()
{
return View();
}
}
Модель представления для видов
public class ElementsOfPeriodicTable
{
public Elements elements { get; set; }
public Dictionary<int, Elements> dictionaryOfElements { get; set; }
}
Пока мой вид выглядит так:
@model PeriodicTable.View_Model.ElementsOfPeriodicTable
@{
ViewBag.Title = "DisplayElements";
Layout = "~/Views/Shared/_LayoutPage1.cshtml";
}
<h2>DisplayElements</h2>
@{
foreach (var item in Model.dictionaryOfElements)
{
<p>
Atomic Number:
Symbol:
Name:
Weight:
</p>
}
}
I want to be able to loop through the dictionary and print all the elements.
<p>
Atomic Number:@item.AtomicNumber
Symbol: @item.Symbol
Name: @item.Name
Weight: @item.Weight
</p>
Следующий цикл не работает для меня.
foreach(KeyValuePair<int, Elements> elementKeyValuePair in ictionaryOfElements)
{
}
Кроме того, как мне отобразить все значения, если я просто хочу выполнить поиск по ключу словаря?Например, я хочу иметь возможность сделать следующее:
Elements element = dictionaryOfElements[4];
Наконец, я буду добавлять все 118 элементов периодической таблицы.Это лучший подход?