본문 바로가기
[C#] SelectMany 메서드 SelectMany 메서드?컬렉션 속성을 가지고 있는 객체가 있고, 자식 컬렉션의 각 항목을 하나씩 열거해야하는 경우 사용하는 메서드쉽게 설명하면 Collection안에 다른 Collection이 정의되어 있고, 이 중 Sub Collection의 데이터를 가져올때 사용하는 메서드이다.  Select 메서드 Select 메서드는 객체에 담긴 데이터 중 원하는 값만 추출하여 새로운 형태의 컬렉션을 생성하는 메서드이다.아래의 예시는 Team 객체에서 name 값만 추출하여 새로운 컬렉션을 만든 것이다.class Program{ public class Team { public string name; public string[] players; } static vo.. 2025. 1. 7.
[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.