Como eu implemento o IEnumerable?
Eu tenho uma classe que contém um número estático de objetos. Essa classe precisa ser frequentemente 'comparada' com outras classes que serão objetos de lista simples.
public partial class Sheet
{
public Item X{ get; set; }
public Item Y{ get; set; }
public Item Z{ get; set; }
}
os itens obviamente não serão "X" "Y" "Z", esses são apenas nomes genéricos, por exemplo. O problema é que, devido à natureza do que precisa ser feito, uma lista não funcionará; mesmo que tudo aqui seja do tipo Item. É como uma lista de verificação de coisas muito específicas que precisam ser testadas no código e no tempo de execução.
Isso funciona muito bem; não é problema meu. Meu problema está iterando. Por exemplo, eu quero fazer o seguinte ...
List<Item> UncheckedItems = // Repository Logic Here.
UncheckedItems contém todos os itens disponíveis; e o CheckedItems é a instância da classe Sheet. CheckedItems conterá itens que foram movidos de Desmarcado para Verificado; no entanto, devido à natureza do sistema de armazenamento, os itens movidos para Marcado NÃO PODEM SER REMOVIDO de Desmarcado. Eu simplesmente quero percorrer "Marcado" e remover qualquer coisa da lista em Desmarcado que já esteja em "Marcado".
Então, naturalmente, isso seria assim com uma lista normal.
foreach(Item item in Unchecked)
{
if( Checked.Contains(item) )
Unchecked.Remove( item );
}
Mas como "Planilha" não é uma 'Lista', não posso fazer isso. Então, eu queria implementar o IEnumerable para que eu pudesse. Alguma sugestão? Eu nunca implementei o IEnumerable diretamente antes e estou bastante confuso sobre por onde começar.