C#: Finde die ungerade oder gerade Zahl in einem Array

Ausgangslage

  • Das Array enthält immer Werte
  • Die Werte können gerade oder ungerade Zahlen sein
  • Möglicher Array Aufbau:
    • x beliebige gerade Zahlen + 1 ungerade Zahl
    • x beliebige ungerade Zahlen + 1 gerade Zahl

Lösungsvorschlag

public static int FindEvenOrOddNumber(int[] numbers)
{
    var oddV = numbers.Where(x => x % 2 != 0).ToList();
    var evenV = numbers.Where(x => x % 2 == 0).ToList();

    return (oddV.Count > 1) ? evenV.First() : oddV.First();
}

Unit-Tests

[Test]
public void FindEvenOrOddNumberTest()
{
    int[] numbers = { 2, -4, 6, 
8, -10, 9, 12, -16 };
    Assert.IsTrue(9 == Snippets.FindEvenOrOddNumber(numbers));
}

[Test]
public void FindEvenOrOddNumberTest2()
{
    int[] numbers = { 222444888, 7, 19, 1979, 89, 1, 25787, 11,1979};
    Assert.IsTrue(222444888 == Snippets.FindEvenOrOddNumber(numbers));
}