Linq의 Lambda에 대한 몇 가지 기초적인 문제

4661 단어 lambda
Linq를 배우는 데도 시간이 좀 걸렸어요. 처음에는 익숙하지 않았는데 쓰면 쓸수록 편리해요.최근에 람바다 표현식을 보고 사용한 결과 이것도 정말 좋은 물건이라는 것을 발견했다.
우리가 Linq 조회나 다른 방식으로 IQueryable 대상이 생겼을 때, 예를 들어 우리가 제품 표에서 제품의 목록을 조회할 때

  
    
IQueryable < Product > product = from p in db.Products select p;

만약에 우리가 이 제품 목록에서 Product ID가 5인 것을 꺼내려고 한다면, 우리는 당연히 for나foreach로 두루 비교할 수도 있고, Linq 문장을 써서 검색할 수도 있다. 이 몇 가지 방법은 모두 지정된 Product ID의 Product를 찾을 수 있다.
for 방법
 
      Product proOne;
  
    
for (int i = 0; i < product.Count(); i++)
{
if (product.ToList().ElementAt(i).ProductID== 5)
{
proOne = product.ToList().ElementAt(i);
}
}

foreach 방법은 for 방법과 유사하며 더 이상 군말하지 않습니다.
Linq 쿼리:

  
    
proOne = (from p in product where p.ProductID == 5 select p).ToList().ElementAt( 0 );

이상의 방법이 좀 번거로우며 Linq 지연 조회의 장점을 지워버렸는지 Lambda 표현식 방법을 살펴보자.

  
    
proOne = product.Single(p => p.ProductID == 5 );

짧은 몇 글자만으로도 위의 몇 가지 방법 중의 번거로운 절차를 완성할 수 있고 Linq 지연 조회의 장점을 잘 보존할 수 있다.이렇게 프로그램 쓰면 시원하지 않아요?Lambda 표현식의 장점을 느꼈습니다. 다음은 Lambda 표현식의 다른 용법을 살펴보고 두 가지 가장 자주 사용하는 방법을 소개하겠습니다. Where와 Select는 먼저 Select 방법입니다.

  
    
var proIDList = product.Select(p => p.ProductID > 5 );

Select 방법은 Single 방법 안의 문장과 유사하다는 것을 알 수 있다. 사실 그들이 되돌아오는 대상은 다르다. Single 방법은 목록의 한 대상을 꺼내는 것이다.Select 메서드는 목록에서 조건에 맞는 여러 객체의 필드 값을 체크 아웃하는 목록입니다.이 문장에서 Select 방법은 IEnumerable 대상을 되돌려줍니다.Single는 프로듀서 대상을 되돌려줍니다. 다음Where 방법은 IEnumerable 대상 목록을 되돌려줍니다.

  
    
var proList = product.Where(p => p.ProductID > 5 );

Where는 Product 객체 열을 생성하므로 Select 메서드와 구별됩니다.이것은 제가 배운 것들입니다. 여러분과 함께 나누고 싶습니다. 문제가 있으면 많은 분들의 지적을 바랍니다.

좋은 웹페이지 즐겨찾기