从列表中获取父母列表?

时间:2013-02-06 09:29:56

标签: c# sqlite

我正在编写一个小的C#程序来递归扫描目录并获取每个文件的文件大小,一些其他信息,并将它们全部添加到sqlite数据库中的表中。然而,我遇到了一些障碍 - 我想获取目录数据(下面的表结构)并将其转换为List<课程> Class是一个包含文件数据的类,目录数据按顺序列出所有目录的父项(Parent,grand parent等)。

目录表:

id int
parentID int
directoryName string

我该怎么做呢?获取子项列表很简单,但我发现如果不重复遍历目录列表,获取父项列表是相当困难的。

2 个答案:

答案 0 :(得分:1)

我认为List<Class>不适合使用。

根据您要对列表执行的操作,如果您的列表顺序不重要,我会使用Dictionary<int, Class>,否则SortedDictionary<int, Class>如果您希望按ID排序,或OrderedDictionary如果您希望能够指定不同的排序方式。

答案 1 :(得分:0)

您可以使用DirectoryInfo.GetParent()

List<DirectoryInfo> parents = new List<DirectoryInfo>();
DirectoryInfo parent = di.Parent;
while(parent != null){
      parents.Add(parent);
      parent = di.Parent;
}