c# - 在分层列表中查找项目

标签 c# algorithm search

在类型为 DirectoryItem 的列表中查找和项目的有效方法是什么 -

List<DirectoryItem> lstRootDirectory = GetAllRootLevelDirectories();

每个 DirectoryItem 都有一个项目(相同类型的列表 - DirectoryItem)并且 DirectoryItem 是一个结构如下:

struct DirectoryItem
        {
          public string AbsolutePath { get { return string.Format("{0}/{1}", BaseUri, Name); } }
          public bool IsDirectory;
          public string Name;   
          public List<DirectoryItem> Items;  
        }

在这种情况下,从这种分层列表中找出项目的更好方法是什么。

最佳答案

您的数据结构实际上是一棵有向树。

任何tree-traversal算法将查找所有根级目录,例如:

  1. 水平顺序(BFS)
  2. 后订单/预订单(DFS 的变体)

关于c# - 在分层列表中查找项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28827513/

相关文章:

python - 第一行的累积减法

分发心跳的算法?

python - 为什么哈希表搜索不成功的时间复杂度为Θ(1+α)?

python - 在 django rest framework searchfilter 中禁用多重搜索

android - 搜索需要来自多个游标/表的数据

c# - 遍历两个相同的数据源

c# - 如何将字符串数组从 jQuery 传递到 Controller

c# - 使用私有(private)还是使用属性? C#

c# - 将多个资源文件加载到一个资源管理器中

arrays - 在字符串数组中查找特定字符/字母的算法?