C# 프로그래밍 기초 실습 전자책
Enumerable 확장 메서드의 예제

System.Linq.Enumerable 클래스는 LINQ 쿼리에서 사용되는 많은 확장 메서드들을 포함하는 클래스이다. 한 예를 들어, Enumerable 클래스는 다음과 같은 Where() 확장메서드를 포함하고 있다. 첫번째 파라미터는 이 메서드가 IEnumerable<T> 인터페이스를 지원하는 모든 Type에 사용된다는 것을 의미한다. 두번째 파라미터는 Func 라는 Delegate를 받아들인다는 것을 의미한다. 보통 여기에는 LINQ 쿼리를 Lambda Expression으로 표현하여 넣게 된다.


아래는 Where() 확장메서드를 사용한 예이다. Where() 확장메서드 첫번째 파라미터에 해당되는 this IEnumerable<T>은 IEnumerable<T>를 갖는 클래스에서 사용된다는 의미인데, 변수 list 객체가 IEnumerable을 구현한 문자열 리스트이므로 list.Where()처럼 사용할 수 있다. 두번째 파라미터는 람다식으로 표현된 것으로 Element중 A로 시작되는 문자들을 선별하고 있다.


또 다른 예로서 아래 예제는 Where() 확장 메서드를 정수 리스트 객체에 적용하여 3으로 나누어 떨어지는 데이타만 출력해 본 예이다. Where()의 리턴 값은 IEnumerable<int>인데, 이를 배열로 변경할 경우는 ToArray()를, 리스트로 변경할 경우는 ToList()를 사용하여 리턴 데이타를 특별한 자료구조에 저장할 수 있다.

예제

static void Main(string[] args)
{
   List<int> nums = new List<int> { 55, 44, 33, 66, 11 };

   // Where 확장 메서드 정수 리스트에 사용
   var v = nums.Where(p => p % 3 == 0);

   // IEnumerable<int> 결과를 정수리스트로 변환
   List<int> arr = v.ToList<int>();

   // 리스트 출력
   arr.ForEach(n => Console.WriteLine(n));
}





본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.




Comment youngmtools@*** 6/6/2017 2:47:53 AM
Comment admin@*** 6/6/2017 5:40:47 PM

Comment 의견/코멘트 쓰기
이메일
 *정확한 이메일이 아닐 경우 삭제될 수 있습니다
의견/코멘트
좌측의 3자리 문자들을 입력해 주십시오





아티클 모바일 링크
C# 스터디 소셜미디어
쉽게 배우는 파이썬 기초