我有一个包含静态对象数的类.需要经常将此类与其他将成为简单List对象的类进行"比较".
public partial class Sheet
{
public Item X{ get; set; }
public Item Y{ get; set; }
public Item Z{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这些项目显然不会是"X""Y""Z",这些只是通用名称.问题是由于需要做的事情的性质,列表不起作用; 即使这里的所有东西都是Item类型.它就像一个非常具体的事项清单,必须在代码和运行时进行测试.
这一切都很好,很好; 这不是我的问题.我的问题是迭代它.例如,我想做以下事情......
List<Item> UncheckedItems = // Repository Logic Here.
Run Code Online (Sandbox Code Playgroud)
UncheckedItems包含所有可用项目; CheckedItems是Sheet类实例.CheckedItems将包含从Unchecked移动到Checked的项目; 但是由于存储系统的性质,移动到已检查的项目无法从未选中删除.我只想迭代"已检查"并从"已检查"中的已取消选中的列表中删除任何内容.
所以很自然地,这会像普通列表一样.
foreach(Item item in Unchecked)
{
if( Checked.Contains(item) )
Unchecked.Remove( item );
}
Run Code Online (Sandbox Code Playgroud)
但由于"Sheet"不是"List",我不能这样做.所以我想实现IEnumerable以便我可以.有什么建议?我以前从来没有直接实现过IEnumerable,我很困惑从哪里开始.