下面给出的是我的类结构,我正在尝试构建一个可以的类 存储,我可以访问下面给出的数据层次结构。
用文字概括(请参阅下面的代码后面的层次结构);
所有地区只有1个主区域
在区域下可以有一个或多个位置。
public class RegionLocItemView
{
public Guid Id { get; set; }
public string name { get; set; }
public Guid value { get; set; }
public bool isChecked { get; set; }
public List<RegionLocItemView> Children
{
get ;
set
{
//where do i set this from
} ;
}
public RegionLocItemView(List<RegionLocItemView> a)
{
Children = a;
}
public RegionLocItemView()
{
}
} /// end of class
Accessing class from code below:
var getAvailableLocations = Model.SessionProvider.GetAvailableLocations.Where(e => e.Location.Count >= 1);
Guid parentid = Guid.Empty;
RegionLocItemView cls = new RegionLocItemView();
List<RegionLocItemView> main = new List<RegionLocItemView>();
foreach (var a in getAvailableLocations)
{
if (a.ParentID == null)
{
//found Parent of all regions.
//cls = new RegionLocItemView();
cls.Id = a.ID;
parentid = a.ID;
cls.name = a.RecordName;
//main.Add(cls);
// break;
}
if (a.ParentID == parentid)
{
RegionLocItemView cls1 = new RegionLocItemView();
//found children
cls1.Id = a.ID;
parentid = a.ID;
cls1.name = a.RecordName;
cls.Children.Add(new List<RegionLocItemView>(cls1));
}
}
我需要将IEnumerable集合列表存储到下面的层次结构中的存储对象。
Main
Region1
Location1
Location2
Location3
Region2
LocationA
LocationB
LocationC
Region...
Location...
问题:
你能否为上面的数据重构上面的类结构,并为我提供一个代码示例,说明如何使用C#代码访问该类。我正在从IEnumerable集合中读取上述数据,并且数据排列不好,因此我需要执行上述操作。
为什么我需要这个类结构:我想要这个,以便我可以将它绑定到Telerik TreView控件,该控件接受像通用列表这样的IEnumerable集合。
答案 0 :(得分:0)
也许使用通用框架类可以完成这项工作
public class Main : Dictionary<Region, List<Location>> { }