Продолжаем упражняться в написании LINQ expressions. Вам сверху снизошёл всё тот же массив stars с объектами типа RockStar:
internal sealed class RockStar
{
internal string Name { get; set; }
internal string CurrentBand { get; set; }
internal string Role { get; set; }
internal long SalaryPerGig { get; set; }
}
Напишите LINQ выражение, которое группирует объекты из массива по полю CurrentBand и возвращает последовательность новых объектов с двумя полями: Name (общее значение свойства CurrentBand для объектов группы) и Size (сколько человек оказалось в группе).
У вас, конечно, получится написать код исключительно на extension-методах, но постарайтесь всё-таки использовать конструкцию from … in stars … select …
Подсказки:
- За группировку в LINQ отвечает конструкция group by.
- Содержимое массива stars:
var stars = new[]
{
new RockStar { Name = "Ian Gillan", CurrentBand = "Deep Purple", SalaryPerGig = 700, Role = "Vocal" },
new RockStar { Name = "Angus Young", CurrentBand = "AC/DC", SalaryPerGig = 900, Role = "Guitar" },
new RockStar { Name = "Roger Glover", CurrentBand = "Deep Purple", SalaryPerGig = 400, Role = "Bass" },
new RockStar { Name = "David Coverdale", CurrentBand = "Whitesnake", SalaryPerGig = 950, Role = "Vocal" },
new RockStar { Name = "Rick Allen", CurrentBand = "Def Leppard", SalaryPerGig = 800, Role = "Drums" },
new RockStar { Name = "Steven Morse", CurrentBand = "Deep Purple", SalaryPerGig = 600, Role = "Guitar" },
new RockStar { Name = "Don Airey", CurrentBand = "Deep Purple", SalaryPerGig = 600, Role = "Keyboards" },
};
P. S. Все персонажи являются вымышленными и любое совпадение с реально живущими или когда-либо жившими людьми и их зарплатами случайно.
Sample Input:
Sample Output:
AC/DC: 1, Deep Purple: 4, Def Leppard: 1, Whitesnake: 1
Напишите программу. Тестируется через stdin → stdout
Стоимость решения этой задачи всего 50 рублей, купи решения у меня или весь курс за 500р+экзамен