프로그래밍/(도서)C#코딩의기술-실전

[C#] 코딩의기술(실전편) - 3.2 First VS Single

Victory_HA 2022. 3. 31. 22:31

First메서드

  • 조건에 맞는 첫 번째 요소를 반환합니다.
  • 첫 번째 요소를 발견 한 시점에 값을 반환합니다.
    • 그 뒤에 요소들은 확인하지 않습니다.

Single메서드

  • 조건에 맞는 값이 하나만 있는 것을 확인한 다음 그 값을 반환합니다.
  • 조건에 맞는 값을 발견 한 후에도 나머지 요소들도 확인합니다.
    • 모든 요소들을 확인 합니다.

First(), Single() 사용예제1

class Program
{
    static void Main(string[] args)
    {
        var enumObj = Enumerable.Range(0, 1000000000);
        var start1 = DateTime.Now;
        var a = enumObj.First(x => x == 1);
        Console.WriteLine($"First() TEST :{DateTime.Now - start1}");

        var start2 = DateTime.Now;
        var b = enumObj.Single(x => x == 1);
        Console.WriteLine($"Single() TEST :{DateTime.Now - start2}");
    }
}

실행 결과

  • Single()처리 속도가 First()처리 속도보다 훨씬 느리다.

Single()의 장점

  • First()에 비해 안정성이 높다.
    • 데이터가 하나밖에 없다는 것을 검증할 수 있다.

Single()의 단점

  • First()에 비해 속도가 느리다.