Podría utilizar algún tipo de lambdas:
//load a list, t, with 100 integers
List<int> t = Enumerable.Range(1, 100).ToList();
//find odd numbers
var oddNumbers = t.Where(num => num%2 != 0);
//find even numbers
var evenNumbers = t.Where(num => num%2 == 0);
//print odd numbers
foreach (int i in oddNumbers)
Console.WriteLine(i);
//print even numbers
foreach(int i in evenNumbers)
Console.WriteLine(i);
El Enumerable simplemente carga la lista con 1-100, y luego simplemente arrebatar todo pronóstico/iguala y luego imprimirlas. Todo esto se puede acortar a:
var e = Enumerable.Range(1, 100).Where(num => num%2==0); //for even numbers
var o = Enumerable.Range(1, 100).Where(num => num%2!=0); //for odd numbers
e, o tienen un tipo implícito var. El compilador puede determinar su tipo por lo que estas dos líneas son equivalentes a:
List<int> eo = Enumerable.Range(1, 100).ToList(); //must tell it its a list
Luego de encontrar las probabilidades/iguala directamente a un tipo de lista:
List<int> o = eo.Where(num => num%2!=0).ToList();
List<int> e = eo.Where(num => num%2==0).ToList();
e imprimirlo aparece en mi inicial código.
Su predicado para números impares contiene un desagradable error. Ve si puedes encontrarlo. (Pista: necesitas más casos de prueba.) –
@Eric Lippert tal vez num% 2 == 1 fue una mala elección ... ya que 2 == 1 devuelve falso :). Editaré ... avísame si estoy equivocado. – JonH
Buena conjetura, solución correcta, pero no cigarro porque en realidad no diagnosticaste el problema. Pruebe su código original con un rango que va de -100 a +100. –