Articles of ienumerable

¿Por qué IEnumerable hereda de IEnumerable?

Esta podría ser una vieja pregunta: ¿por qué IEnumerable hereda de IEnumerable ? Así es como lo hace .NET, pero trae un pequeño problema. Cada vez que escribo una clase implementa IEumerable , tengo que escribir dos funciones GetEnumerator() , una para IEnumerable y otra para IEnumerable . Y, IList no hereda de IList. No […]

¿Enumeración de colecciones que no son inherentemente IEnumerable?

Cuando desee enumerar recursivamente un objeto jerárquico, seleccionando algunos elementos según algunos criterios, hay numerosos ejemplos de técnicas como “aplanamiento” y luego filtrado utilizando Linq: como los que se encuentran aquí: Texto del enlace Pero cuando enumera algo como la colección Controls de un Formulario, o la colección Nodos de un TreeView, no he podido […]

IEnumerable y Recursion usando yield return

Tengo un IEnumerable que estoy usando para buscar controles en una página de WebForms. El método es recursivo y tengo algunos problemas para devolver el tipo que quiero cuando el yield return el valor de la llamada recursiva. Mi código se ve de la siguiente manera: public static IEnumerable GetDeepControlsByType(this Control control) { foreach(Control c […]

La colección fue modificada; la enumeración no puede ejecutar el error al eliminar un ListItem de un LIstBox

Tengo dos ListBoxes, lstAvailableColors y lstSelectedColors. Entre cada cuadro de lista hay dos botones, Agregar y Eliminar. Cuando se selecciona un color o colores en lstAvailableColors y se hace clic en el botón Agregar, quiero eliminarlos de lstAvailableColors y mostrarlos en lstSelectedColors. Además, si se seleccionan colores en lstSelectedColors y se hace clic en el […]

Se necesita un método de extensión en IEnumerable para mezclar

Necesito un método de extensión que IEnumerable un IEnumerable . También puede tomar un int para especificar el tamaño del IEnumerable devuelto. Es mejor mantener la inmutabilidad del IEnumerable . Mi solución actual para IList – public static IList Shuffle(this IList list, int size) { Random rnd = new Random(); var res = new T[size]; […]

¿Cómo comprobar si IEnumerable es nulo o está vacío?

Me encanta el método string.IsNullOrEmpty . Me encantaría tener algo que permita la misma funcionalidad para IEnumerable. ¿Hay tal? Tal vez alguna clase de ayuda de colección? La razón por la que estoy preguntando es que en las declaraciones if , el código parece desordenado si el patrón es (mylist != null && mylist.Any()) . […]

¿Cuál es la diferencia entre IEnumerator e IEnumerable?

Posible duplicado: ¿Alguien puede explicarme IEnumerable e IEnumerator? ¿Cuáles son las diferencias entre IEnumerator e IEnumerable?

Cuando una clase se hereda de List , XmlSerializer no serializa otros atributos

Estoy teniendo una situación aquí, necesito que mi clase sea heredada de List , pero cuando hago esto, XmlSerializer no serializa ninguna propiedad o campo declarado en mi clase, el siguiente ejemplo demuestra: public partial class Form1 : Form { public Form1() { InitializeComponent(); DoSerialize(); } private void DoSerialize() { MyClass obj = new MyClass(); […]

¿Cómo obtener el índice de un elemento en un IEnumerable?

Yo escribí esto: public static class EnumerableExtensions { public static int IndexOf(this IEnumerable obj, T value) { return obj .Select((a, i) => (a.Equals(value)) ? i : -1) .Max(); } public static int IndexOf(this IEnumerable obj, T value , IEqualityComparer comparer) { return obj .Select((a, i) => (comparer.Equals(a, value)) ? i : -1) .Max(); } } […]

¿Debo siempre devolver IEnumerable en lugar de IList ?

Cuando estoy escribiendo mi DAL u otro código que devuelve un conjunto de elementos, siempre debo hacer mi statement de devolución: public IEnumerable GetRecentItems() o public IList GetRecentItems() Actualmente, en mi código he intentado usar IEnumerable tanto como sea posible, pero no estoy seguro de si esto es una buena práctica. Parecía correcto porque estaba […]