Приветствую всех! Сегодня хочу показать пример как с помощь 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();