¿Qué que son después de que aquí no existe en el BCL por lo que yo sepa, así que hay que craete su propia clase estática como este para lograr la funcionalidad requerida:
public static class MyEnumerable {
public static IEnumerable<int> AlternateRange(int start, int count) {
for (int i = start; i < start + count; i += 2) {
yield return i;
}
}
}
continuación, puede utilizar como este donde quiera que quiere:
foreach (int i in MyEnumerable.AlternateRange(0, 10)) {
//your logic here
}
A continuación, puede también realizar LINQ consulta utiliza este ya que devuelve IEnumerable
lo tanto, si se desea se puede aleo escribir lo anterior como esto si desea excluir la número 6
foreach (int i in MyEnumerable.AlternateRange(0, 10).Where(j => j != 6)) {
//your logic here
}
Espero que esto es lo que está buscando.
No puede tener esto como un método de extensión en Enumerable
directamente ya que es una clase estática, y los métodos de extensión funcionan en un objeto de una clase, y no en la clase misma. Es por eso que debe crear una nueva clase estática para mantener este método si desea imitar la clase Enumerable
.
¿Qué pasa con 'for' loop? –
@ Thomas Anderson: Usando 'for' loop podemos hacer esto. ¿Pero podemos hacer esto usando 'LINQ'? –
@Thomas: La gente comenzó a odiar el bucle 'for' /' foreach' una vez que usaron LINQ. LINQ es la moda, mientras que 'for' es antiguo. Entonces intentan usar LINQ incluso 'for' es mucho más adecuado. –