Группировка по первому символу
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
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; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
---a--- a ab abc abcd abcde ---b--- b bc bcd bcdef bcdef ---c--- c cd cde cdef cdefg |
Группировка по перовой букве
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
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; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
---a--- a ab abc abcd abcde ---b--- b bc bcd bcdef bcdef ---c--- c cd cde cdef cdefg |
Альтернативный вариант, возвращает анонимный объект, на основании выборки.
1 |
stars.GroupBy(x => x.CurrentBand).Select(x=>new {Name=x.Key, Size =x.Count()}).ToArray(); |