构建层次结构的类结构

时间:2012-09-27 19:44:58

标签: c# asp.net asp.net-mvc c#-4.0

下面给出的是我的类结构,我正在尝试构建一个可以的类 存储,我可以访问下面给出的数据层次结构。

用文字概括(请参阅下面的代码后面的层次结构);
所有地区只有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集合。

1 个答案:

答案 0 :(得分:0)

也许使用通用框架类可以完成这项工作

public class Main : Dictionary<Region, List<Location>> { }