Tag: 层次结构

使用枚举实现层次结构的最佳C#模式是什么?

我正在实现代表距离(或长度)的值类型。 有一个枚举代表不同的度量单位,例如: public enum DistanceUnit { Millimeter, Centimeter, Meter, Kilometer, Inch, Foot, Yard, Mile }; 这些测量属于两个系统之一 – 公制或英制。 由于枚举不支持hierachies,表示这种层次结构的最佳模式是什么? 它是否使用位标志? 或者使用两个单独的枚举以及一些方法来关联它们? 或者声明静态成员而不是枚举? 给我一些建议……你会如何实现这个? 编辑 – 更多说明:我有几个不可变的结构(由T4生成)代表各种测量: public struct Meters : IEquatable, IEquatable, IEquatable, … IComparable etc.. etc.. { public readonly decimal Value; … public static implicit operator Distance (Meters other) { // Can implicitly cast […]

Linq扩展方法,如何在集合中查找子递归

我已经熟悉了Linq,但对扩展方法了解甚少,我希望有人可以帮助我。 所以我有这个分层集合伪代码,即: class Product prop name prop type prop id prop List children 我有一个产品列表产品列表。 有没有什么办法可以通过id使用扩展方法在这个集合中查找产品? 换句话说,我需要在层次结构中的某个位置使用一个项目。

在XmlSerializer生成的对象中维护xml层次结构(即父子)信息

一段时间以来,我一直试图解决以下问题,我开始没有想法: 我使用xsd.exe工具从xsd架构生成了一组C#类,并且反序列化xml文件工作正常。 问题是除了使用自动生成的类的方便性和安全性之外,我还需要有关xml层次结构的信息,即我需要在反序列化期间创建的对象之间建立父子关系。 请注意,我想避免保留单独的xml层次结构(如DOM树),而是让生成的对象跟踪其父项和子项。 我已经设法通过以下方式在Java中使用JAXB: 为所有反序列化对象定义公共基类。 此基类包含子列表和对父对象的引用(如果有)。 使用Unmarshaller.Listenerfunction,该function在已完成的对象反序列化上提供回调。 此回调提供对最近反序列化对象的父级的引用,这使得建立父子关系变得微不足道。 我将如何在C#中执行此操作? 我看过MSDN文档,并进行了大量的谷歌搜索,但未能找到任何有用的信息。

从结构化数据构建JSON层次结构

C#| .NET 4.5 | entity framework5 我有一个以ID,ParentID,Nameforms从SQL查询返回的数据。 我想获取该数据并将其解析为Hierarchical JSON字符串。 到目前为止,这似乎是一项艰巨的任务,而不是应有的任务。 因为我正在使用Entity,所以数据作为IEnumerable很好地回馈给我。 现在我相信我只需要某种forms的递归,但我不确定从哪里开始。 任何帮助表示赞赏。 数据返回为 id parentId name 1 1 TopLoc 2 1 Loc1 3 1 Loc2 4 2 Loc1A 代码是 public static string GetJsonLocationHierarchy(long locationID) { using (EntitiesSettings context = new EntitiesSettings()) { // IEnumerable of ID,ParentID,Name context.GetLocationHierarchy(locationID); } } 最终的结果我希望是这样的: { “id”: “1”, “parentId”: […]

平面数据的层次结构

我有一个employee类,它有employeeId(int),parent(int)和children属性List 。 我以正确的顺序从数据库中获取员工列表,现在需要构建层次结构 ,但我失败了……我知道这是编程101,但我很难用它。 public class Employee { public int EmployeeId { get; set;} public int ParentId;{ get; set;} public List Children; { get; set;} } 数据示例 EmployeeId, ManagerId 1, 0 //no one 2, 1 3, 1 4, 2 5, 2 6, 3 7, 3

SQL数据层次结构

我已经查看了一些SQL层次结构教程,但它们对我的应用程序都没有多大意义。 也许我只是没有正确理解它们。 我正在编写一个C#ASP.NET应用程序,我想从SQL数据创建一个树视图层次结构。 这是层次结构的工作方式: SQL TABLE ID | 位置ID | 名称 _______ | __________ | _____________ 1331 | 1331 | 屋 1321 | 1331 | 房间 2141 | 1321 | 床 1251 | 2231 | 健身房 如果ID和位置ID相同,则将确定顶级父级。 该父母的任何子女都将拥有与父母相同的位置ID。 该孩子的任何孙子女的位置ID都等于孩子的ID,依此类推。 对于上面的例子: – 屋 – 房间 —床 任何帮助或指导易于遵循的教程将不胜感激。 编辑: 我到目前为止的代码,但只有父母和孩子,没有GrandChildren。 我似乎无法弄清楚如何让它以递归方式获取所有节点。 using System; using System.Data; using System.Collections.Generic; […]

LINQ基于childorder对单个列表进行排序

我目前正在尝试找出一种使用LINQ和C#对元素进行排序的好方法,但我有点没有这样做。 对于这个问题,我们假设您有以下表格 —TempTable ID (int) ParentID (int) Name (varchar) SortOrder (int) ID和ParentID彼此相关,并为我提供了一个自我分层的数据结构。 根元素在ID字段中为空。 SortOrder只是整个表的一部分,并且基于ParentID,因此共享相同ParentID的元素在其中具有1,2,3。 让我们进一步假设以下数据: ID = 1 ParentID = null Name = Test 1 SortOrder = 1 ID = 2 ParentID = 1 Name = Test 2 SortOrder = 1 ID = 3 ParentID = 1 Name = Test 3 SortOrder = 2 ID […]