Приветствую всех! Сегодня хочу показать пример как с помощь LINQ, объединить коллекцию в одну. По условию задания у нас дана коллекция, главный метод и метод который мы должны дописать:
public class Classroom
{
public List<string> Students = new List<string>();
}
public static void Main()
{
Classroom[] classes =
{
new Classroom {Students = {"Pavel", "Ivan", "Petr"},},
new Classroom {Students = {"Anna", "Ilya", "Vladimir"},},
new Classroom {Students = {"Bulat", "Alex", "Galina"},}
};
var allStudents = GetAllStudents(classes);
Array.Sort(allStudents);
Console.WriteLine(string.Join(" ", allStudents));
}
public static string[] GetAllStudents(Classroom[] classes)
{
///
}
Как видно в метод GetAllStudents принимает коллекцию коллекций. А вернуть нам нужно массив string[] Который содержит имена всех студентов.
Решение этой тривиальной задачи будет в одну строчку кода, которую мы решим с помощью Linq:
public static string[] GetAllStudents(Classroom[] classes)
{
return classes.SelectMany(s => s.Students).ToArray();
}
Для решения этой задачи воспользуемся методом SelectMany, почитать можете в чем разница между Select и SelectMany тут всю коллекцию преобразуем в массив string() с помощью метода ToArray();
