【发布时间】:2010-07-17 17:19:04
【问题描述】:
我有一个包含 2 个表的数据库:
- 项目
- 项目依赖项
物品有 ID 的键
ItemDependencies 有两列:ItemId 和 DependsOnItemId
我把它转换成一个集合:
IEnumerable<Item> items = GetItems();
每个 item 都有一个:Dependencies 属性,它是一个
List<Item>
所以我想将初始项目列表过滤为:
给定一个项目,我想要一个该项目的列表以及递归依赖该项目的所有项目。
给定一个项目,我想要一个该项目的列表以及它所依赖的所有其他项目(也是递归的)。
在 C#、LINQ 或其他任何可以解决问题的方法中,最好的方法是什么。
【问题讨论】:
-
假设依赖链中没有循环是否安全?
-
每个项目是否显示为仅对另一个项目的直接依赖,或者多个项目可以对同一个项目有依赖关系?即这是一个传统的“树结构”,每个项目在树中只出现一次?
标签: c# linq collections ienumerable