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));
}