C# 이것저것 14

[C#] LINQ 기초

LINQ(Languate-INtegrated Query)는 C#에 통합된 데이터 질의 기능이다. SQL과 같은 Query 언어는 데이터베이스 언어인데 이것을 C#에 도입한 것이다. LINQ를 사용하면 컬렉션에서 데이터를 다루는 방법이 간단해진다. var sortedEven = from item in data //불러올 데이터 where item % 2 ==0 //조건 orederby item // 정렬 select item; // 선택 "data 컬렉션에 있는 데이터 item으로부터 item이 짝수이면 item 값이 정렬하여 선택한다"이며, LINQ를 사용하면 원본 데이터가 IEnumerable이나 IEnumerable 인터페이스를 상속하는 형식이어야 한다. using System; using Syste..

[C#] Predicate<T> 델리게이트

Predicate 는 Func나 Action과 같은 미리 정의된 델리게이트 형식이다. Predicate 델리게이트 메서드는 하나의 매개변수를 갖고 리턴 갑시 bool인 델리게이트다. Predicate isEven = ISEven; static bool IsEven(int n) { return n % 2 ==0; } Predicate isEven은 매개변수가 정수 하나이며, 리턴 값이 bool인 IsEvnen 메서드 이름을 지정한다. 여기서 Predicate isEven는 소문자로 시작하고 메서드 IsEven은 대문자로 시작하는 것을 주의한다. Predicate로 다음과 같이 IsEven() 메서드를 호출할 수 있다. Console.WriteLine(isEven(6)); //결과 true IsEven(in..

[C#] 람다식(Lambda Expression)

람다식은 익명 메서도를 간단하게 표현이 가능하다. 람다식은 개체로 처리되는 코드이며, 메서드와 같이 매개변수와 리턴 값을 갖는다. 람다식은 인수를 메서드에 전달 가능하며, 값을 반환할 수 있다. 람다식은 델리게이트로 표현될 수 있는 코드인데, 델리게이트형은 리턴 값이 파라미터 갯수가 에따라 정해진다. 리턴값이 없는 람다식은 Action 델리게이트에 해당하고, 리턴값이 있는 람다식은 Func 델리게이트에 해당된다. 두 개 파라미터를 갖고 리턴 값이 없는 람다식은 Action 델리게이트에 해당한다. 한 개의 파라미터와 리턴 값을 갖는 람다식은 Func 델리게이트에 해당한다. 람다식 연산자는 "=>"로 표현이 된다. => 연산자 왼쪽은 매개변수, 오른쪽은 식 또는 문장이 위치하며, 이것이 리턴값이 된다. 예를..

[C#] 델리게이트의 기본

정수 배열에서 홀수와 짝수의 갯수를 출력하고 싶을 때, int[] arr = new int[] { 3, 5, 4, 2, 6, 4, 6, 8, 54, 23, 4, 6, 4 }; Console.WriteLine($"짝수의 갯수 : {Count(arr, IsEvne)}"); Console.WriteLine($"홀수의 갯수 : {Count(arr, IsOdd)}"); 이것을 구분하기 위해 홀과 짝을 구분하는 메서드 를 만들어서 구분할 수 있다. static int EvenCount(int[] a) // 짝수 { int cnt = 0; foreach (var n in a) { if (n%2==0) { cnt++; } } return cnt; } static int OddCount(int[] a) //홀수 { in..