Articles of ienumerable

Mapear duas listas em um dictionary em c #

Dados dois IEnumerable s do mesmo tamanho, como posso convertê-lo em um Dictionary usando o Linq? IEnumerable keys = new List() { “A”, “B”, “C” }; IEnumerable values = new List() { “Val A”, “Val B”, “Val C” }; var dictionary = /* Linq ? */; E a saída esperada é: A: Val A B: […]

Dividir um IEnumerable em partes de tamanho fixo (retornar um IEnumerable <IEnumerable > onde as seqüências internas são de comprimento fixo)

Eu quero tomar um IEnumerable e dividi-lo em pedaços de tamanho fixo. Eu tenho isso, mas parece deselegante devido a toda a criação / cópia da lista: private static IEnumerable<IEnumerable> Partition(this IEnumerable items, int partitionSize) { List partition = new List(partitionSize); foreach (T item in items) { partition.Add(item); if (partition.Count == partitionSize) { yield return […]

Por que IEnumerable foi feito covariante em C # 4?

Em versões anteriores do C # IEnumerable foi definido assim: public interface IEnumerable : IEnumerable Desde C # 4, a definição é: public interface IEnumerable : IEnumerable É só para acabar com os castings irritantes nas expressões LINQ? Isso não introduzirá os mesmos problemas como com string[] <: object[] (variação de matriz quebrada) em C […]

Convertendo de IEnumerable para List

Eu quero converter de IEnumerable para List . Como posso fazer isso?

Por que IEnumerable herda de IEnumerable?

Isso pode ser uma pergunta antiga: Por que IEnumerable herda de IEnumerable ? É assim que o .NET faz, mas traz um pequeno problema. Toda vez que escrevo uma class implementa IEumerable , eu tenho que escrever duas funções GetEnumerator() , uma para IEnumerable e outra para IEnumerable . E, IList não herda de IList. […]

Enumerando collections que não são inerentemente IEnumerable?

Quando você deseja enumerar recursivamente um object hierárquico, selecionando alguns elementos com base em alguns critérios, há vários exemplos de técnicas como “nivelamento” e, em seguida, filtragem usando o Linq: como os encontrados aqui: Texto do link Mas, quando você está enumerando algo como a coleção de controles de um formulário ou a coleção de […]

IEnumerable e Recursion usando o retorno de rendimento

Eu tenho um método IEnumerable que estou usando para encontrar controles em uma página WebForms. O método é recursivo e estou tendo alguns problemas ao retornar o tipo desejado quando o yield return é retornado pelo valor da chamada recursiva. Meu código é o seguinte: public static IEnumerable GetDeepControlsByType(this Control control) { foreach(Control c in […]

Coleção foi modificada; enumeração não pode executar erro ao remover um ListItem de um LIstBox

Eu tenho dois ListBoxes, lstAvailableColors e lstSelectedColors. Entre cada checkbox de listview estão dois botões, Adicionar e Remover. Quando uma cor ou colors é selecionada em lstAvailableColors e o botão Adicionar é clicado, desejo removê-las de lstAvailableColors e exibi-las em lstSelectedColors. Além disso, se as colors forem selecionadas em lstSelectedColors e o botão Remover for […]

Um método de extensão no IEnumerable necessário para embaralhar

Eu preciso de um método de extensão que irá embaralhar um IEnumerable . Também pode levar um int para especificar o tamanho do IEnumerable retornado. Melhor manter a imutabilidade do IEnumerable . Minha solução atual para IList – public static IList Shuffle(this IList list, int size) { Random rnd = new Random(); var res = […]

Quando uma class é herdada da lista , o XmlSerializer não serializa outros atributos

Estou tendo uma situação aqui, preciso que minha class seja herdada de List , mas quando eu faço isso XmlSerializer não serializa qualquer propriedade ou campo declarado na minha class, o exemplo a seguir demonstra: public partial class Form1 : Form { public Form1() { InitializeComponent(); DoSerialize(); } private void DoSerialize() { MyClass obj = […]