본문 바로가기
반응형

C#52

[C#] 링크(LINQ) - 집합 연산자 Distinct, Union, Intersect, Except 집합 연산자란? 집합 연산자는 두 집합 간에 관계를 활용하는 연산자이다. Distinct() Distinct 메서드는 집합 내에 중복 요소를 제거하기 위해 사용된다. int[] factorsOf300 = { 2, 2, 3, 5, 5 }; var uniqueFactors = factorsOf300.Distinct(); // uniqueFactors = { 2, 3, 5 }; Union() Union 메서드는 두 집합을 각 원소가 중복되지 않도록 더한 새로운 집합을 만들때 사용된다. int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 }; int[] numbersB = { 1, 3, 5, 7, 8 }; var uniqueNumbers = numbersA.Union(numbersB); // .. 2023. 7. 20.
[C#] 링크(LINQ) Take(), Skip() LINQ에서 제공하는 확장 메서드 중 Take, Skip, TakeWhile, SkipWhile을 분할 연산자라고 한다. 분할 연산자는 출력 시퀀스를 분할하여 반환한다. Take() Take 메서드로 numbers 배열에서 처음 3개의 원소만 꺼내 출력 시퀀스를 만든다. int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; var first3Numbers = numbers.Take(3); // first3Numbers = { 5, 4, 1 }; Skip() Skip 메서드로 numbers 배열에서 처음 4개의 원소를 건너뛰고 출력 시퀀스를 만든다. int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; var allButFirst4Nu.. 2023. 7. 17.
[C#] 링크(LINQ) 메서드식 표현 Single() / SingleOrDefault() 해당 함수는 데이터가 하나라는 전제하에 사용된다. 만약 여러 Row를 리턴하면 에러가 발생한다. Single()은 데이터가 반드시 1개 존재하며, 그렇지 않은 경우 Exception을 발생시킬 때 쓰는 메서드이고, SIngleOrDefault()는 데이터가 1개일때는 해당 데이터를 가져오고 테이더가 없을 경우에는 해당 Type의 디폴트 값(일반적으로 NULL)을 리턴할 때 사용된다. 일반적으로 SingleOrDefault()를 사용하여 NULL을 체크하는 방식을 자주 사용한다. 예제 var v = db.Orders.Where(o => o.Order_ID == 10001).SingleOrDefault(); if (v != null) { txtDate.Te.. 2023. 7. 17.
[Effective C#] Item 50 예외 필터의 다른 활용 예를 살펴보라 예외필터를 통해 다양한 방법으로 여러가지 기능을 제공할 수 있다. 첫번째로 항상 false만을 반환하여 제한된 타입에 대해서만 로그를 출력할 수 있다. try { data = MakeWebRequest(); } catch (Exception e) when (ConsoleLogException(e)) { } catch (TimeoutException e) when (failures++ < 10) { WriteLine("Timeout error: trying again"); } public static bool ConsoleLogException(Exception e) { var oldColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleCol.. 2023. 6. 12.
반응형