본문 바로가기
프로그래밍/C#

[C#] List 함수를 이용한 Linq 메서드식 표현

by 불타는홍당무 2018. 11. 15.
출처 http://www.csharpstudy.com/


단일 레코드 리턴

Single() : 레코드가 반드시 1개 존재하며, 그럴지 않을 경우 Exception을 발생시킨다.
SingleOrDefault() : 레코드가 1개 일 때는 해당 데이터를 레코드가 없을 경우는 해당 Type의 디폴트 값 (일반적으로 NULL)을 리턴한다.

var v = db.Orders.Where( o => o.Order_ID == 10001).SingleOrDefault();
if (v != null)
    txtDate.Text = v.Order_Date.ToString();



처음 레코드 리턴

First() : 레코드가 여러 개 리턴될 경우도 사용할 수 있으며, 그 중 처음 레코드만을 리턴한다. 
FirstOrDefault() : 레코드가 1개 일 때는 해당 데이터가 레코드가 없을 경우는 해당 Type의 디폴트 값 (일반적으로 NULL)을 리턴한다.

var v = db.Orders.Where( o => o.Customer+ID == "FRANS"). FirstOrDefault();


OrderBy

기본적으로 올림차순으로 정렬하며, 만약 내림차순이나 다른 비교 연산을 사용하려면, IComparer를 구현하는 클래스를 만들어 파라미터로 지정한다.

// 주문날짜를 올림차순으로 정렬
var v = db.Orders.Where( o => o.Customer+ID == "FRANS"). OrderBy(p => p.Order_Date);


Select

데이타를 변형하거나 부분 선택하여 새로운 클래스(Anonymous Type)를 만들어 리턴하고 싶은 때 사용한다.

//Select() 메서드를 이용해 Anonymous Type을 새로 정의
var v = db.Orders.Where( o => o.Customer+ID == "FRANS"). Select(p => new {Id = p.Order_ID, Addr = p.Ship_Address + " " + p.Ship_City});


'프로그래밍 > C#' 카테고리의 다른 글

[C#] C# string.Replace 메서드  (0) 2019.09.26
[C#] C# string.Substring 메서드  (0) 2019.09.26
[C#] List 주요 함수 정리  (0) 2018.11.15