【发布时间】:2010-05-07 14:42:58
【问题描述】:
我有一个包含静态数量对象的类。这个类需要经常与其他简单的 List 对象类进行“比较”。
public partial class Sheet
{
public Item X{ get; set; }
public Item Y{ get; set; }
public Item Z{ get; set; }
}
这些项目显然不会是“X”“Y”“Z”,例如,这些只是通用名称。问题是由于需要做的事情的性质,列表不起作用。即使这里的所有内容都将是 Item 类型。它就像一个必须在代码和运行时测试的非常具体的事情的清单。
这一切都很好;这不是我的问题。我的问题是迭代它。例如我想做以下...
List<Item> UncheckedItems = // Repository Logic Here.
UncheckedItems 包含所有可用的项目; CheckedItems 是 Sheet 类实例。 CheckedItems 将包含从 Unchecked 移动到 Checked 的项目;但是,由于存储系统的性质,移动到 Checked 的项目不能从 Unchecked 中删除。我只是想遍历“已检查”并从“已检查”中的“未检查”列表中删除任何内容。
所以很自然,这与普通列表一样。
foreach(Item item in Unchecked)
{
if( Checked.Contains(item) )
Unchecked.Remove( item );
}
但由于“Sheet”不是“列表”,我不能这样做。所以我想实现 IEnumerable 以便我可以。有什么建议么?我以前从未直接实现过 IEnumerable,我很困惑从哪里开始。
【问题讨论】:
标签: c# ienumerable