XML and IDictionary in C#
本文关键字:in IDictionary and XML | 更新日期: 2023-09-27 18:21:28
我的XML文件如下,
<state name ="Alaska">
<Location Name="loc1">
<Address>xyz</Address>
<DateNTime>Saturday, Oct 2, 8pm</DateNTime>
</Location>
<Location Name="loc2">
<Address>abc</Address>
<DateNTime>Saturday, Oct 2, 10am</DateNTime>
</Location>
</state>
这样一来,我有50个州。每个州都将出现在下拉列表中,单击该州时,需要在网格视图中显示不同的位置及其地址和时间。这是代码
private static IDictionary<string, Dictionary<string, Property>> dictionary;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
XDocument doc = XDocument.Load(Server.MapPath("test2.xml"));
dictionary = doc.Root.Elements("state").ToDictionary(
state => state.Attribute("name").Value,
state => state.Elements("Location").ToDictionary(
location => location.Attribute("Name").Value,
Property));
var x = dictionary.Keys;
DropDownList1.DataSource = x;
DropDownList1.DataBind();
}
}
public void OnSelectedIndexChanged(Object sender, EventArgs e)
{
GridView1.DataSource = from item in dictionary[DropDownList1.SelectedItem.Text]
select new { col1 = item.Key, col2 = item.Value };
GridView1.DataBind();
}
public class Property
{
public string address;
public string datetime;
}
在这里,我不知道如何声明IDictionary并相应地检索数据。有人能解释一下吗??
试试这个:
dictionary = doc.Root.Elements("state").ToDictionary(
s => s.Attribute("name").Value,
s => s.Elements("Location").ToDictionary(
loc => loc.Attribute("Name").Value,
loc => new Property
{
address = loc.Element("Address").Value,
datetime = loc.Element("DateNTime").Value
}));