C#

[C#]LINQ Single() or SingleOrDefault() 차이점

[C#]LINQ  Single() or SingleOrDefault() 차이점

Single() 혹은 SingleOrDefault() 메서드는 

LINQ에서 사용되는 많은 Extension Method들 중에 단일 레코드를 리턴하는 메서드이다.

Single() 혹은 SingleOrDefault() 메서드 모두 데이타가 하나라는 전제하에 사용된다. 

만약 여러 Row를 리턴하면 에러가 발생한다. 

Single() : 데이터가 반드시 1개 존재, 그렇지 않을 경우 Exception 발생시킬 때 사용되는 메서드

SingleOrDefault() : 데이터가 1개 일경우 해당 데이터를 return하고 데이터가 없을 경우는 해당 Type의 디폴트 값(일반적으로 NULL)을 리턴할 때 사용 

일반적으로 SingleOrDefault()를 사용하여 NULL을 체크하는 방식으로 자주 사용된다.

예제

private ItemFromCenter SetModelForItemFromCenter(ItemFromCenter ItemModel, List<ItemFromCenter> target)
{
ItemFromCenter ifc = target.Where(x => (x.ItemID == ItemModel.ItemID)).SingleOrDefault();

if(ifc != null ) return ifc;
else {
ifc = new ItemFromCenter ();
}

}

Leave a Reply

error: Content is protected !!