It is a little long, but at least you can read the idea much easily.

I hope this helps:

```
private void button1_Click(object sender, EventArgs e)
{
int[] array = { 4, 5, 8, 2, 6, 9, 1, 7 };
int[] arrayOdds = new int[array.Length];
int[] arrayPairs = new int[array.Length];
List<int> newArray = new List<int>();
//separate Odds from pairs
for (int i = 0; i < array.Length; i++)
{
if (array[i] % 2 == 1)
{
arrayOdds[i] = array[i];
}
else
{
arrayPairs[i] = array[i];
}
}
//bubble sort
for (int i = 0; i < array.Length; i++)
{
for (int j = 0; j < array.Length - 1; j++)
{
//bubble sort odds ascending
if (arrayOdds[j] > arrayOdds[j + 1])
{
int aux = arrayOdds[j];
arrayOdds[j] = arrayOdds[j + 1];
arrayOdds[j + 1] = aux;
}
//bubble sort pairs descending
if (arrayPairs[j] < arrayPairs[j + 1])
{
int aux = arrayPairs[j];
arrayPairs[j] = arrayPairs[j + 1];
arrayPairs[j + 1] = aux;
}
}
}
//get results together on a list
for (int i = 0; i < array.Length; i++)
{
if (arrayOdds[i] > 0)
newArray.Add(arrayOdds[i]);
}
for (int i = 0; i < array.Length; i++)
{
if (arrayPairs[i] > 0)
newArray.Add(arrayPairs[i]);
}
}
```