본문 바로가기
반응형

전체 글109

[C#] 링크(LINQ) - SequenceEqual, Concat, Zip 시퀀스 작업(Sequence operations) 시퀀스 작업 메서드는 집합 전체를 대상으로 작업한다. SequenceEqual() 두 집합의 모든 요소가 같은 순서대로 있는지 비교할때 사용한다. var wordsA = new string[] { "cherry", "apple", "blueberry" }; var wordsB = new string[] { "cherry", "apple", "blueberry" }; bool match = wordsA.SequenceEqual(wordsB); // match = true var wordsA = new string[] { "cherry", "apple", "blueberry" }; // 순서를 변경하면 결과가 달라진다. var wordsB = new stri.. 2023. 7. 20.
[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.
반응형