C# 如何应用复合迭代器
我试图弄清楚如何合并迭代器和复合对象。 下面的结构的最佳实现是什么C# 如何应用复合迭代器,c#,design-patterns,C#,Design Patterns,我试图弄清楚如何合并迭代器和复合对象。 下面的结构的最佳实现是什么 class Composite<Item> : Item { } class Iterator<Item> { } class Iterable<Item> { } 类组合:项 { } 类迭代器 { } 类可编辑 { } 在C#中,很少使用这种方法进行迭代器。通常,您只需在通用集合中使用项目 至于-这种模式背后的主要动机是允许您的组合被视为只是一个项目。这通常意味着您可以仅通过执行
class Composite<Item> : Item
{
}
class Iterator<Item>
{
}
class Iterable<Item>
{
}
类组合:项
{
}
类迭代器
{
}
类可编辑
{
}
在C#中,很少使用这种方法进行迭代器。通常,您只需在通用集合中使用项目
至于-这种模式背后的主要动机是允许您的组合被视为只是一个项目。这通常意味着您可以仅通过执行以下操作将合成与迭代“结合起来”:
// Given:
public class Composite<Item> : IItem {}
//给定:
公共类组合:IItem{}
你可以做:
List<IItem> items = new List<IItem>();
items.Add(new Item());
items.Add(new Composite<Item>());
items.Add(new Item());
// Iterate through the items...
foreach(var item in items)
{
item.Foo();
}
List items=newlist();
添加(新项());
添加(新组合());
添加(新项());
//遍历项目。。。
foreach(项目中的var项目)
{
item.Foo();
}