C# where
[C#] LINQ 개념 (Language INtegrated Query)
1. 사전 복습 using System; using System.Collections.Generic; class Program { static void Main() { int[] arr = {1, 2, 3, 4, 5}; foreach(int n in arr) Console.WriteLine(n) IEnumerable col = arr; foreach(int n in col) Console.WriteLine(n); } } 배열을 하나 만들고 foreach를 이용해 요소를 출력해보는 코드이다. 그런데 foreach의 원리는 결국 배열이 갖고있는 GetEnumerator() 메소드를 호출해 열거자를 꺼내는 방식이였다. 모든 컬렉션은 IEnumerable 인터페이스를 구현해야 하고 배열도 컬렉션이므로 GetEn..
[C#] 제너릭 제약 (Generic Constraint)
1. 문제 using System; class Program { public static int Max(int a, int b) { return a < b ? b : a; } static void Main() { Console.WriteLine(Max(10, 20)); Console.WriteLine(Max("A", "B")); } } 위는 인자를 2개 받아 둘 중 더 큰 값을 리턴하는 Max함수를 만들어 사용하는 코드이다. 인자는 int타입만을 받고 있는데 10번째 라인과 같이 string타입도 비교를 하고 싶다고 해보자. string타입은 비교연산자를 사용할 순 없지만 CompareTo메소드를 통해 비교가 가능하다. CompareTo메소드는 앞이 크면 1, 작다면 -1, 같으면 0이 나오므로 0보다 ..