标签: hierarchy

循环遍历DirectoryEntry或任何对象层次结构 - C#

我目前正在开发一个使用System.DirectoryServices命名空间创建DirectoryEntry对象的应用程序,并循环遍历整个层次结构以收集信息.

我不知道层次结构中每个DirectoryEntry对象的子条目数,因此我不能通过Children属性为蜘蛛创建N个嵌套循环

这是我的伪代码示例:

//root directory
DirectoryEntry root = new DirectoryEntry(path);

if(DirectoryEntry.Childern != null)
{
    foreach(DirectoryEntry child in root.Children)
    {
        //loop through each Children property unitl I reach the last sub directory
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果您不知道对象中子目录的数量,创建循环来收集信息的最佳方法是什么?

(这可以应用于您不知道对象层次结构的任何类型的对象)

c# directoryservices loops web-crawler hierarchy

2
推荐指数
1
解决办法
9032
查看次数

SQL Server获取父列表

我有这样一张桌子:

id name parent_id
1  ab1  3
2  ab2  5
3  ab3  2
4  ab4  null
5  ab5  null
6  ab6  null
Run Code Online (Sandbox Code Playgroud)

我需要使用输入id = 1进行查询(例如),结果将如下所示:

id name parent_id
5  ab5  null
2  ab2  5
3  ab3  2
1  ab1  3
Run Code Online (Sandbox Code Playgroud)

(列出所有级别的所有父级,从项目id = 1开始)

sql-server hierarchy

2
推荐指数
1
解决办法
3954
查看次数

Sql server查询以展平记录层次结构

我有一个描述层次结构的表:

Name    MemberName
A       B
A       C
B       D
D       E
F       G
Run Code Online (Sandbox Code Playgroud)

MemberName引用同一个表的Name列.从这张表中,我可以轻松查询B和C是A中的成员,D是B的成员,E是D的成员,G是F的成员.

基于这种结构,很难编写一个查询,表明D和E也间接成为A的成员.D和E也间接成为B的成员等等.所以我需要做的是建立一个新的表该节目显示了所有间接成员.所以对于上面的表数据,我最终会得到一个包含以下内容的表:

Name    MemberName
A       B
A       C
A       D
A       E
B       D
B       E
D       E
F       G
Run Code Online (Sandbox Code Playgroud)

我首先将所有不是其他记录(顶级)记录成员的记录放入临时表中:

CREATE TABLE #TMP
(
    [Name] varchar(20),
    [MemberName] varchar(20)
)

DECLARE @iRowsFound INT
INSERT INTO #TMP ([Name],[MemberName]) 
(SELECT * FROM [HierarchyData] WHERE [Name] NOT IN 
   (SELECT [MemberName] FROM [HierarchyData]))
SELECT @iRowsFound = @@ROWCOUNT

Name    MemberName
A       B
A       C
F       G
Run Code Online (Sandbox Code Playgroud)

然后我的理论是,在一个while循环中,将临时表交叉连接到heirachy表,并将来自交叉连接的适用记录插回到临时表中,并执行while循环,直到十字架中没有更多适用的记录加入以插入:

WHILE (@iRowsFound > 0)
BEGIN …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2000 hierarchy

2
推荐指数
1
解决办法
6881
查看次数

在C#中使用继承

所以我刚接受了面试,他们给了我一份他们希望我事先处理的任务清单.我完成了除了一个以外的所有任务,并且想知道是否有人能够对这个问题有所了解.

问题就是这样的

  1. 创建一个名为Human的类,为类提供一个公共属性HairColor和一个公共方法Talk(),当调用它时,返回"我是一个人".
  2. 创建另一个名为child的类,它继承自Human并覆盖talk方法并返回"我是小孩".
  3. 创建一个覆盖谈话和输出"我是男性"的男女班级.和"我是女性."
  4. 更改子级和人类层次结构以适当地包括男性和女性并输出正确的字符串.

我完成了任务1-3,但是在问题4上被困了.我在过去的继承工作经历中并没有做太多的事情,这个问题对我来说似乎有点模糊.我向雇主解释了这一点,他们看起来还不错,但没有告诉我应该怎么做.它现在一直困扰着我,我想知道它是如何完成的.

.net c# inheritance hierarchy

2
推荐指数
1
解决办法
311
查看次数

Rails分层建模 - 多个类别

我有以下几点:

  1. 一个产品可以有多个类别
  2. 一个类别可以在不同的产品中.
  3. 有父(类别),如果它不是一个普通类(在这种情况下,父母将无)

从关系数据库的角度来看,这将是我将实现的内容:

  1. 产品
  2. product_category(作为主键:product_id,category_id)
  3. 类别(带有引用类别的parent_id,如果它是"常规"类别,则为nil)

从Rails建模的角度来看,我有以下内容(我避免编写对于我正在处理的这种关系/层次问题并不重要的字段):

class Product < ActiveRecord::Base
...
has_many :categories


class Category < ActiveRecord::Base
...
Here comes de doubt: How do I specify the parent_id? 
Run Code Online (Sandbox Code Playgroud)

有没有办法指定一个类别有一个,只有一个父ID引用另一个类别?

database model ruby-on-rails hierarchy

2
推荐指数
1
解决办法
1919
查看次数

java中的实例变量创建

如果我有以下情况:

public class Foo extends Baz{
  private String banana = "banana";
  //blah blah blah
}


public class Baz{
  protected static String apple = "apple"; 
}
Run Code Online (Sandbox Code Playgroud)

哪个先创建,苹果还是香蕉?我想说苹果首先被创造,但我不确定.

java inheritance instance-variables hierarchy

2
推荐指数
1
解决办法
164
查看次数

递归查询?

我是mongodb的新手.

假设我的数据库中有一个"文件系统"层次结构:

db.directories.save({ _id: "root", directories: ["src", "lib"], files: ["config.cfg"] })
db.directories.save({ _id: "src", directories: [], files: ["file1.js", "file2.js"] })
db.directories.save({ _id: "lib", directories: [], files: [] })

db.files.save({ _id: "config.cfg", size: 2310 })
db.files.save({ _id: "file1.js", size: 5039 })
db.files.save({ _id: "file2.js", size: 1299 })
Run Code Online (Sandbox Code Playgroud)

我如何获得文件夹的总大小?

即"根"目录的总大小=文件的总大小+子目录的总大小

recursion hierarchy mongodb

2
推荐指数
1
解决办法
3213
查看次数

使用SQL Server CTE展平层次结构系列

寻找SQL Server CTE示例来创建层次结构,以便我可以输出所有系列,例如展平每个层次结构.例如在家族树中如果root从grand Parent开始我需要每个家庭成员的层次结构列表的列表,其中包含成员详细信息+父级的行详细信息

  child1 row
  child1 +Parent row
  child1 + Grand parent Row

  child2 Row
  child2 + parent row
  child2 + grand parent's row

 and so on
Run Code Online (Sandbox Code Playgroud)
     CREATE TABLE Family(id int NULL,
Name varchar(20) null,  Parent_id int NULL, level int NULL  ) 


INSERT INTO Family VALUES
    (1, 'Grand Parent',NULL,    1),         
    (2, 'Parent'    ,   1,      2),
    (3, 'Child1'    ,   2,      3),
    (4, 'Child2'    ,   2,      3)     

    select * from Family;

id  Name          Parent_id   level
 1  Grand Parent  NULL         1
 2 …
Run Code Online (Sandbox Code Playgroud)

sql t-sql database sql-server hierarchy

2
推荐指数
1
解决办法
6123
查看次数

Rails:单个项目的多个树

我想对多个树中的对象进行分类以反映其特征并构建导航.

所以,考虑到以下树木:

Category1
-Category-1-1
-Category-1-2

Category2
-Category-2-1
-Category-2-2
--Category-2-2-1
Run Code Online (Sandbox Code Playgroud)

对象可以例如属于类别1-2和类别-2-2-1.

目标是能够从数据库中获取所有对象

  • 属于某个类别
  • 属于某一类别或其后代的

一个更实际的例子:

类别可能具有"工具>园艺工具>切割器"的层次结构.

第二类:'硬物>金属物>小金属物'

对象'Pruners'将被归类为属于'Cutters'以及'Small metal objects'.

我希望能够

  • 检索所有'园艺工具' - >'修剪'
  • 检索"园艺工具" - >"刀具"的所有类别子项
  • 检索所有'硬物' - >'修剪'
  • 检索所有'硬物',也是'Cutters' - >'Pruners'
  • 检索所有'软件对象'也是'Cutters' - > []任何指针?我简要地看了一下closure_tree,awesome_nested_sets等,但我不确定它们是不是很匹配.

tree ruby-on-rails hierarchy nested-sets

2
推荐指数
1
解决办法
583
查看次数

如何安全地打破单片mkYesod块

这个问题更能帮助我理解Yesod而不是其他任何东西.以http://www.yesodweb.com/book/basics为例,特别是mkYesod TH函数生成的代码.

我认为的问题是这个TH生成路由数据类型(数据路由HelloWorld = HomeR)和调用getHomeR等的yesodDispatch函数.

难点在于,在较大的项目中,您不能将getHomeR的定义拆分为单独的模块,因为Haskell的简单模块系统是严格分层的; 因此,如果getHomeR简称getHomeRimplementation这是在另一个模块中定义(比如HomeImplementation),那么该模块将需要导入的定义数据路由的HelloWorld和将有循环依赖关系.

在我看来,如果可以在单独的模块中声明RenderRoute,ParseRouteYesodDispatch实例,则可以避免这种情况; 然后RenderRoute可以位于导入层次结构的底部,而YesodDispatch位于顶部.那有意义吗 ?也许我问这个问题的事实表明我对mkYesod TH 不了解 ; 例如,存在一些重要的相互关系,它们不应该分开.

haskell module hierarchy yesod

2
推荐指数
1
解决办法
121
查看次数