C#190 [C#]LINQ 합집합 구하는 방법 - Union 메서드 Union 메서드 LINQ의 Union() 메서드는 두 컬렉션에서 중복된 요소를 제거하고 모든 요소를 하나로 결합합니다. 예를 들어 다음 소스 코드를 봅시다. int[] intArrayA = { 0, 2, 4, 5 }; int[] intArrayB = { 1, 2, 3, 5 }; int 타입의 배열인 intArrayA와 intArrayB가 존재합니다. intArray와 intArrayB에 중복된 요소는 2, 5입니다. 따라서, 두 컬렉션을 Union() 메서드를 사용하여 하나로 결합하면 다음과 같은 결과가 나와야 합니다. int[] unionResult = {0, 1, 2, 3, 4, 5}; 오버로드된 두 가지 버전 LINQ의 Union() 메서드 사용 예제를 알아보기 전에 오버로드된 두 가지 버전에 대.. C#/LINQ 2022. 7. 17. [C#]LINQ 교집합 구하는 방법 - Intersect 메서드 Intersect 메서드 LINQ의 Intersect() 메서드는 두 컬렉션에서 동일한 요소를 추출합니다. 예를 들어 다음 소스 코드를 봅시다. int[] intArrayA = { 0, 2, 4, 5 }; int[] intArrayB = { 1, 2, 3, 5 }; int 타입의 배열인 intArrayA와 intArrayB가 존재합니다. intArrayA와 intArrayB에 모두 존재하는 요소는 2, 5입니다. 배열을 그림으로 나타내면 다음과 같습니다. 오버로드된 두 가지 버전 LINQ의 Intersect() 메서드는 오버로드된 두 가지 버전이 존재합니다. public static IEnumerable Intersect( this IEnumerable first, IEnumerable second); .. C#/LINQ 2022. 7. 14. [C#]LINQ 차집합 구하는 방법 - Except 메서드 Except 메서드 LINQ의 Except() 메서드는 첫 번째 데이터에는 존재하지만 두 번째 데이터에는 없는 요소를 반환합니다. 예를 들어 다음 소스 코드를 봅시다. int[] intArrayA = { 0, 2, 4, 5 }; int[] intArrayB = { 1, 2, 3, 5 }; int 타입의 배열인 intArrayA와 intArrayB가 존재합니다. 첫 번째 데이터인 intArrayA에는 존재하지만 두 번째 데이터인 intArrayB에 없는 요소는 0, 4입니다. 배열을 그림으로 나타내면 다음과 같습니다. 오버로드된 두 가지 버전 LINQ의 Except() 메서드는 오버로드된 두 가지 버전이 존재합니다. public static IEnumerable Except( this IEnumerable.. C#/LINQ 2022. 7. 13. [C#]인스턴스 비교 - ReferenceEquals 메서드 ReferenceEquals 메서드 C# 최상위 클래스인 Object에 존재하는 ReferenceEquals() 메서드는 매개변수로 전달된 두 개의 객체가 동일한 인스턴스인지 확인하기 위해 사용됩니다. ReferenceEquals() 메서드는 재정의할 수 없으며 두 개의 객체가 동일한 인스턴스라면 true를 반환하고 그렇지 않으면 false를 반환합니다. 참조 형식에서 값이 할당되는 과정을 모르신다면 아래 포스팅을 참고해주세요. 값 형식과 참조 형식에서 값이 할당되는 과정을 이해하셔야 ReferenceEquals() 메서드를 이해할 수 있습니다. [C#]값 형식(Value Types)과 참조 형식(Reference Types) 값 형식(Value Types)과 참조 형식(Reference Types) C.. C# 2022. 7. 13. [C#]LINQ 특정 타입 추출하는 방법 - OfType 메서드 LINQ의 OfType 메서드 LINQ의 OfType() 메서드는 특정 타입의 데이터를 추출하기 위해 사용되는 메서드입니다. 예를 들어 List의 타입이 Object인 경우 string, int, boolean 등.. 모든 타입의 값을 가질 수 있습니다. 해당 List 객체에서 string 타입의 값만 추출하고 싶은 경우 OfType() 메서드를 사용할 수 있습니다. 다음 예제는 OfType() 메서드를 사용하여 string 타입의 값을 추출하는 방법입니다. class Program { static void Main(string[] args) { // Object 타입인 List 객체는 모든 타입의 값을 가질 수 있습니다. List allTypeList = new List() { "C Sharp", 10.. C#/LINQ 2022. 7. 12. [C#]LINQ 인덱스 가져오는 방법 Select 메서드 System.Linq 네임스페이스에 존재하는 Select() 메서드는 오버로드된 두 가지 버전이 존재합니다. // 첫 번째 버전 public static IEnumerable Select( this IEnumerable source, Func selector); // 두 번째 버전 public static IEnumerable Select( this IEnumerable source, Func selector); 첫 번째 버전으로는 인덱스를 가져올 수 없으므로 이번 포스팅은 두 번째 버전에 대해 설명합니다. Select() 메서드의 첫 번째 매개 변수는 Select() 메서드가 IEnumerable 인터페이스의 확장 메서드라는 것을 의미합니다. this IEnumerable sourc.. C#/LINQ 2022. 7. 12. [C#]LINQ 데이터 필터링 방법 - Where절 Where절 LINQ의 Where문은 원본 데이터에서 일부 조건을 만족하는 데이터를 추출해야하는 경우 사용됩니다. 예를 들자면, 아래 조건을 만족하는 데이터를 추출하기 위해 Where문을 사용할 수 있습니다. - 이름이 "A"로 시작하는 문자열만 추출 - 급여가 4,000만원 이상인 직원을 추출 - 나이가 20세 이상인 사람을 추출 오버로드된 두 가지 버전 메서드 구문을 사용하여 질의를 작성하는 경우 Where() 메서드를 사용합니다. Where() 메서드는 오버로드된 두 가지 버전이 존재합니다. public static IEnumerable Where( this IEnumerable source, Func predicate); public static IEnumerable Where( this IEnu.. C#/LINQ 2022. 7. 10. [C#]LINQ SelectMany 메서드 SelectMany 메서드 LINQ의 SelectMany() 메서드는 질의 구문에서 사용할 수 없으며 메서드 구문에서 사용할 수 있는 기능입니다. .NET 공식 문서에서는 SelectMany() 메서드를 다음과 같이 정의합니다. 시퀀스의 각 요소를 IEnumerable에 투영하고 결과 시퀀스를 단일 시퀀스로 평면화합니다. 음... 솔직하게 무슨 말인지 이해가 안 되네요. 예제를 통해 SelectMany() 메서드가 어떻게 동작하는지 알아봅시다. 다음 예제는 string 타입으로 구성된 List에서 SelectMany() 메서드를 호출합니다. class Program { static void Main(string[] args) { List strLi = new List() { "Hello", "C Shar.. C#/LINQ 2022. 7. 10. [C#]LINQ Select절 Select문 LINQ의 Select문은 SQL의 Select문과 동일합니다. Select문은 데이터의 모든 항목을 추출할 것인지 특정 항목만 추출할 것인지 설정할 수 있는 문법입니다. Select문은 질의 구문(Query Syntax), 메서드 구문(Method Syntax) 둘 다 존재합니다. 따라서, 이번 포스팅에서는 질의 구문, 메서드 구문에서 Select문을 사용하는 방법을 소개합니다. 예제 1. 기본 사용 방법 다음 예제는 질의 구문과 메서드 구문을 사용하여 데이터 원본에서 모든 항목 추출합니다. class Person { public int ID { get; set; } public string Name { get; set; } public int Age { get; set; } public.. C#/LINQ 2022. 7. 10. [C#]LINQ 확장 메서드 LINQ 확장 메서드 LINQ의 Where(), Union(), Join() 메서드 등.. 해당 메서드들은 Enumerable 클래스에서 구현됩니다. 이 메서드들은 IEnumerable 인터페이스 타입의 확장 메서드로 구현됩니다. 다음 예제를 살펴봅시다. List strArr = new List{ "Apple", "Banana", "Car", "Angular", "Add", "Sum" }; IEnumerable linqResult = strArr.Where(item => item.StartsWith("A")); 컬렉션 클래스인 List에는 다음 사진처럼 Where() 메서드가 존재하지 않지만, Where() 메서드를 호출해도 전혀 문제가 없습니다. System.Linq 네임스페이스에 존재하는 Enumer.. C#/LINQ 2022. 7. 10. [C#]LINQ와 IEnumerable, IQueryable 인터페이스 이번 포스팅은 C#의 IEnumerable, IQueryable 인터페이스에 대해 설명합니다. C#의 LINQ를 사용하여 예제를 설명하므로 LINQ에 대해 모르시는 분들은 아래 포스팅을 읽어주시길 바랍니다. [C#]링크(LINQ)란? LINQ란? LINQ(Language-INtegrated Query)의 약자인 LINQ는 데이터 질의(Query) 기능을 C#에서 사용할 수 있는 기술입니다. 쉽게 설명하자면 C#의 배열, 컬렉션, XML, DataSet 등... 에서 내가 원하는 데이터만 가.. developer-talk.tistory.com [C#]LINQ 질의 구문과 메서드 구문 LINQ를 사용하여 원하는 데이터를 추출하기 위해 질의(Query)를 작성하는 방법은 질의 구문(Query Syntax)과 .. C#/LINQ 2022. 7. 10. [C#]LINQ 중복 제거 Distinct 메서드 LINQ의 Distinct() 메서드는 단일 데이터 타입에서 중복되는 요소를 제거하고 고유한 요소를 반환합니다. 단일 데이터 타입 사용자 정의 클래스가 아닌 int, string, boolean 등 기본 타입을 의미합니다. Distinct() 메서드는 다음 코드처럼 오버로드된 두 가지 버전이 존재합니다. public static IEnumerable Distinct(this IEnumerable source); public static IEnumerable Distinct( this IEnumerable source, IEqualityComparer comparer ); 두 가지 버전의 차이는 IEqualityComparer를 사용 유무입니다. IEqualityComparer는 어.. C#/LINQ 2022. 7. 10. 이전 1 ··· 4 5 6 7 8 9 10 ··· 16 다음