안녕하세요.
Visual Studio에서 ForEach() 메서드에 마우스 커서를 올려보면 List<T>에 대한 반복 형태의 도움말을 볼 수 있습니다. 즉, ForEach() 메서드는 List<T>에 대해서 사용이 가능한 메서드입니다.
LINQ의 Where() 메서드의 결괏값은 IEnumerable<T>입니다.
만약, Where() 메서드의 결과를 바로 ForEach() 메서드를 사용하여 출력하고자 한다면
IEnumerable<T> 형태를 List<T> 형태로 변경해야 ForEach() 메서드가 사용이 가능합니다.
그래서 Where().ToList().ForEach() 형태를 사용했습니다.
당연히 names 변수는 그 자체가 List<T> 형태이기에 바로 ForEach() 메서드를 사용 가능합니다.
이상입니다.
On 2021-04-21 오후 2:23:00, '한민식' wrote:
선생님 안녕하세요.
var numbers = new List<int>() {10, 20, 30, 40, 50};
numbers.Where(n => n <= 20).ToList().ForEach(n => Console.WriteLine(n));
// 여기에서는 ToList()를 하는데
var names = new List<string>() {"RedPlus", "Taeyo"};
names.ForEach(n => Console.WriteLine(n));
// 여기에서는 ToList()를 안해도 되는 이유를 알고 싶습니다.