У меня есть класс, который содержит статическое количество объектов. Этот класс необходимо часто сравнивать с другими классами, которые будут простыми объектами 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 );
}
Но поскольку «Лист» не является «Списком», я не могу этого сделать. Поэтому я хотел реализовать IEnumerable, чтобы я мог. Какие-либо предложения? Я никогда раньше не реализовывал IEnumerable напрямую, и я не совсем понимаю, с чего начать.