Сортировка через интерфейс IComparer - C#
Формулировка задачи:
Создать массив char
(случайно и от руки). Отсортировать его при помощи Array.Sort так, чтобы вначале были гласные в алфавитном порядке, а после согласные в алфавитном порядке. Пример a, i,e,u, b,c,f,g.... Пожалуйста, помогитеРешение задачи: «Сортировка через интерфейс IComparer»
textual
Листинг программы
using System;
using System.Linq;
using System.Collections.Generic;
class Program
{
public class CharComparer : IComparer<char>
{
char []vovels = {'a','e','i', 'o','u'};
char[] consonants = { 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'x', 'z' };
public int Compare(char a, char b)
{
if (consonants.Contains(a) == true &&
vovels.Contains(b) == true)
return 1;
if (vovels.Contains(a) == true &&
consonants.Contains(b) == true)
return -1;
return a.CompareTo(b);
}
}
static void Main(string[] args)
{
string myString = string.Empty;
while (myString != "0")
{
char[] arr = (myString = Console.ReadLine()).ToCharArray();
Array.Sort(arr, new CharComparer());
Console.WriteLine( arr);
}
Console.ReadKey(true);
}
}