C#/LINQ45 [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. [C#]LINQ 질의 구문과 메서드 구문 LINQ를 사용하여 원하는 데이터를 추출하기 위해 질의(Query)를 작성하는 방법은 질의 구문(Query Syntax)과 메서드 구문(Method Syntax)이 존재합니다. 질의 구문과 메서드 구문은 동일한 작업을 수행하지만 소스 코드를 작성하는 방법은 다릅니다. 쿼리 구문은 DataBase의 Query문과 비슷하고 메서드 구문은 C#의 문법과 매우 유사합니다. 즉, DataBase에서 Query문을 작성해보지 않은 개발자는 쿼리 구문보다 메서드 구문이 익숙할 것이며, Query문을 작성해본 개발자는 쿼리 구문이 익숙할 수 있습니다. 질의 구문(Query Syntax) 질의 구문은 LINQ를 소개하는 포스팅에서 설명했듯이 from 키워드로 시작해서 select 키워드로 끝납니다. 질의 구문에서 사용되.. C#/LINQ 2022. 7. 10. [C#]링크(LINQ)란? LINQ란? LINQ(Language-INtegrated Query)의 약자인 LINQ는 데이터 질의(Query) 기능을 C#에서 사용할 수 있는 기술입니다. 쉽게 설명하자면 C#의 배열, 컬렉션, XML, DataSet 등... 에서 내가 원하는 데이터만 가져오고 싶은 경우 사용할 수 있는 기술이라고 말할 수 있습니다. LINQ의 장단점을 알아보기 전에 LINQ가 무엇인지 다음 예제를 통해 간략하게 알아봅시다. 다음 예제는 배열에서 대문자 "A"로 시작하고 문자열의 길이가 3보다 큰 문자열을 LINQ로 추출한 뒤 콘솔에 출력합니다. class Program { static void Main(string[] args) { string[] strArr = { "Apple", "Banana", "Car", .. C#/LINQ 2022. 7. 9. 이전 1 2 3 4 다음