C# Enumerable에서 Where과 Select, 무슨 차이가 있을까요? 알아보도록 합시다~ 예제 자료에서 사용할 List에 관한 안내는 다음과 같답니다.
list1 은 Where 예시입니다. value => value == "1"
list2 는 Select 예시입니다. value => "value is " + value
//Where
List<string> list1 = new List<string> { "1", "2", "3" };
var enum1 = list1.Where(value => value == "1");
Console.WriteLine(enum1.Count());
Console.WriteLine(list1.Count());
//Select
List<string> list2 = new List<string> { "1", "2", "3" };
var enum2 = list2.Select(value => "value is " + value);
Console.WriteLine(enum2.Count());
Console.WriteLine(list2.Count());
Where
Where의 경우를 먼저 살펴보겠습니다. 'value => value == "1"'는 'value == "1"' 에 해당하는 값을 필터링 합니다. 그리하여 새로운 배열은 "1" 요소 하나만을 가지고 있습니다.
Select
Select를 살펴보겠습니다. 'value => "value is " + value' 구문을 셀렉트 하는 경우는 다음을 뜻합니다.
Select의 경우, 각 요소를 value is 문자열을 더한 값으로 새로운 열거 형태를 만들게 됩니다.
Where VS Select
Where와 Select의 차이를 요약하자면 다음과 같습니다.
Where : 람다에서 서술한 조건에 맞는 새로운 열거형을 만듭니다. 조건에 의한 특정 요소만 추출하시려면 Where 을 이용하세요~
Select : 람다식으로 해당 열거식을 새로 선택합니다. 각 Element를 새롭게 설정하여 선택을 하시려면 Select 를 이용하세요~