Группировка по первому символу
using System;
//добавить ссылку
using System.Linq;
class Program {
public static int Main() {
//источник данных
string[] ara = new string[] {
"a", "ab", "abc", "abcd","abcde",
"b","bc", "bcd","bcdef", "bcdef",
"c", "cd","cde", "cdef","cdefg"
};
//создание запроса
var query =
from val in ara
//сгруппировать val по 1 символу и записать в новую переменную N
group val by val[0] into N
select new { firstSimvol = N.Key, word = N };
//выполнение запроса
foreach(var i in query) {
Console.WriteLine("---{0}---", i.firstSimvol);
foreach(var j in i.word) {
Console.WriteLine(j);
}
Console.WriteLine();
}
Console.ReadKey();
return 0;
}
}
---a---
a
ab
abc
abcd
abcde
---b---
b
bc
bcd
bcdef
bcdef
---c---
c
cd
cde
cdef
cdefg
Группировка по перовой букве
using System;
//добавить ссылку
using System.Linq;
class Program {
public static int Main() {
//источник данных
string[] ara = new string[] {
"a", "ab", "abc", "abcd","abcde",
"b","bc", "bcd","bcdef", "bcdef",
"c", "cd","cde", "cdef","cdefg"
};
//создание запроса
var query =
from val in ara
//сгруппировать val по 1 букве и записать в новую переменную N
group val by val.Substring(0, 1) into N
select new { firstLetter = N.Key, word = N };
//выполнение запроса
foreach(var i in query) {
Console.WriteLine("---{0}---", i.firstLetter);
foreach(var j in i.word) {
Console.WriteLine(j);
}
Console.WriteLine();
}
Console.ReadKey();
return 0;
}
}
---a---
a
ab
abc
abcd
abcde
---b---
b
bc
bcd
bcdef
bcdef
---c---
c
cd
cde
cdef
cdefg
Альтернативный вариант, возвращает анонимный объект, на основании выборки.
stars.GroupBy(x => x.CurrentBand).Select(x=>new {Name=x.Key, Size =x.Count()}).ToArray();
