본문 바로가기
[C#] OfType<T>() vs CAST<T>() Enumerable.OfType()시퀀스 내의 형식과 일치하는 요소만 반환, 필터 기능이라고 보면됨일치하지 않는 요소가 있어도 예외를 발생 하지 않음object[] arr = { 1, "2", 3, "4", 5 };var ofTypeArr = arr.OfType();Console.WriteLine(string.Join(", ", ofTypeArr)); // 1, 3, 5int와 string 속성이 섞인 배열에서 int타입만 필터링 되었다.Enumerable.Cast() 시퀀스 내의 모든 요소의 형식을 타입으로 변환 시도만약 형 변환이 되지 않는 요소가 있을 경우 InvalidCastException 예외 발생 object[] arr = { 1, "2", 3, "4", 5 };var castArr = ar.. 2024. 12. 19.
[C#] 열거형 Enum 열거형 Enum열거형은 서로 관련 있는 상수들의 집합을 정의한 것 이다. 숫자에 특정한 명칭을 붙여주어 의미를 쉽게 이해할 수 있게 하는 용도로 사용된다. 예를 들어 프로그램에서 사과, 바나나, 오렌지의 세 과일을 사용하고 싶은데 각각 0, 1, 2라는 숫자를 부여한다면 나중에 1이 무엇을 의미하는지 이해하기 어려울 수 있다. // 0 == apple, 1 == banana, 2 == orangeint[] fruit = { 0, 1, 2 };  이럴 때 enum을 사용하면 보기 편한 코드를 작성할 수 있다.enum Fruit{ apple, // 0 banana, // 1 orange // 2}enum 사용법enum은 기본적으로 위에 Fruit 예시 처럼 enum 이름 { } 형태로 중.. 2024. 12. 16.
[C#] Enumerable.Union() 메서드 Enumerable.Union() 메서드두 시퀀스를 중복이 생기지 않게 합쳐준다.메서드 예제int[] arr = { 1, 2, 3, 4, 5 };int[] arr2 = { 1, 3, 5, 7, 9 };arr = arr.Union(arr2).ToArray();Console.WriteLine(string.Join(", ", arr)); // 1, 2, 3, 4, 5, 7, 9 1, 2, 3, 4, 5가 담긴 int array와 1, 3, 5, 7, 9가 담긴 int array를 합치면 중복이되는 1, 3, 5빼고 7, 9만 추가 되는 것을 확인할 수 있다.   다른 Enumerable 메서드 :) https://twd0622.tistory.com/14 [C#] Linq (Enumerable 클래스)최근 수정.. 2024. 12. 13.
[C#] as, is 키워드 C#에서 형변환을 하기 위해서 캐스트 연산자를 사용한다. 캐스트 연산자 case 1.값을 변환할 때 사용되는 경우double d = 10.5;int i = (int)d;Console.WriteLine(d); // 10.5Console.WriteLine(i); // 10 캐스트 연산자 case 2.열거형에서 사용되는 경우enum City{ Seoul, Daejeon, Daegu, Busan}int busan = (int)City.Busan;Console.WriteLine(busan); // 3 캐스트 연산자 case 3.참조 형식의 형변환 경우private void button_click(object sender, EventArgs e){ MessageBox.Show((Butto.. 2024. 12. 12.
[C#] 연산자 오버로딩 (Operator Overloading) C#에는 연산자 오버로딩을 제공한다. 연산자 오버로딩이란?C#에서 제공하고 있는 연산자에 대해 기능을 다시 부여하는 것을 의미한다.기본 문법 형태는 public static [리턴속성] operator [연산자](매개변수1, 2) 이다. 예를 들어 이런 Person 이란 클래스가 있다고 가정을 할때 Person p1 = new Person();Person p2 = new Person();Console.WriteLine(p1 + p2); // Error 이런식으로 더하기를 하면 당연히 컴파일 오류가 발생할 것이다. 하지만 두 Person이 나이의 합을 반환하고 싶다면 어떻게 해야할까addPerson 이란 메서드를 만들어 addPerson(p1, p2) 이런식으로 사용 할 수 도 있지만두 사람의 나이가 아닌.. 2024. 12. 11.
[C#] Enumerable.FirstOrDefault() 메서드 Enumerable.FirstOrDefault()Enumerable의 메서드 중 FirstOrDefault는 첫번째 값을 반환하거나 해당 시퀀스가 비어있다면 시퀀스 타입의 기본값을 반환한다.int의 기본값은 0, string의 기본값은 "" 이다.메서드 예제 1.string 형식의 a, b, c가 담긴 배열과 아무것도 들어있지 않은 int 배열을 이용해 FirstOrDefault 메서드를 사용해 보겠다.string[] strArr = { "a", "b", "c" };int[] intArr = new int[] { };string str1 = strArr.FirstOrDefault();int i1 = intArr.FirstOrDefault();Console.WriteLine(str1); // aConsol.. 2024. 12. 10.