Группировка массивов в C# по первому символу: методы и примеры кода

В C# существует несколько методов группировки массивов по первому символу. В этой статье блога рассматриваются различные подходы и приводятся примеры кода для каждого метода. Группируя массивы таким образом, вы можете эффективно организовывать и обрабатывать данные. Давайте углубимся в различные техники!

Метод 1: LINQ GroupBy
Метод LINQ GroupBy — это мощный инструмент для группировки массивов на основе определенных критериев. Вот как его можно использовать для группировки массива по первому символу:

char[] array = { 'apple', 'banana', 'cherry', 'apricot', 'blueberry' };
var groups = array.GroupBy(item => item[0]);
foreach (var group in groups)
{
    Console.WriteLine($"Group Key: {group.Key}");
    foreach (var item in group)
    {
        Console.WriteLine($"Item: {item}");
    }
}

Метод 2: словарь с первым символом в качестве ключа.
Другой подход заключается в использовании словаря, в котором первый символ каждого элемента массива выступает в качестве ключа. Этот метод позволяет быстро сгруппировать элементы.

char[] array = { 'apple', 'banana', 'cherry', 'apricot', 'blueberry' };
var groups = new Dictionary<char, List<string>>();
foreach (var item in array)
{
    char key = item[0];
    if (!groups.ContainsKey(key))
    {
        groups[key] = new List<string>();
    }
    groups[key].Add(item);
}
foreach (var group in groups)
{
    Console.WriteLine($"Group Key: {group.Key}");
    foreach (var item in group.Value)
    {
        Console.WriteLine($"Item: {item}");
    }
}

Метод 3: группировка вручную
Если вы предпочитаете более ручной подход, вы можете использовать цикл для перебора массива и группировки элементов на основе первого символа.

char[] array = { 'apple', 'banana', 'cherry', 'apricot', 'blueberry' };
var groups = new Dictionary<char, List<string>>();
foreach (var item in array)
{
    char key = item[0];
    if (!groups.ContainsKey(key))
    {
        groups[key] = new List<string>();
    }
    groups[key].Add(item);
}
foreach (var group in groups)
{
    Console.WriteLine($"Group Key: {group.Key}");
    foreach (var item in group.Value)
    {
        Console.WriteLine($"Item: {item}");
    }
}