반응형

LINQ 7

[C#] Extension 메소드 사용하기

C# 프로그래밍에서 Extension 메소드(확장 메소드)는 기존의 타입에 새로운 메소드를 추가할 수 있게 해주는 강력한 기능입니다. 이 기능은 특히 기존 라이브러리나 프레임워크를 수정하지 않고도 해당 타입의 기능을 확장하고 싶을 때 유용합니다. 1. Extension 메소드란 무엇인가?Extension 메소드는 정적 메소드로 선언되지만, 특정 타입의 인스턴스 메소드처럼 사용될 수 있습니다. 이 메소드는 this 키워드를 사용해 첫 번째 파라미터에 기존 타입을 명시함으로써 해당 타입의 인스턴스에 대해 호출할 수 있게 됩니다.2. Extension 메소드 구현 방법Extension 메소드를 구현하려면 다음과 같은 단계를 따르세요:정적 클래스 생성: Extension 메소드는 정적 클래스 내부에 정의되어야 ..

프로그래밍/C# 2024.05.08

[C#] SkipWhile & TakeWhile

C# LINQ: SkipWhile과 TakeWhile 메서드 깊게 알아보기 안녕하세요! 오늘은 C#의 LINQ 메서드 중 SkipWhile과 TakeWhile에 대해 자세히 알아볼 것입니다. 이 두 메서드는 데이터 컬렉션을 효과적으로 쿼리하는 데 아주 유용합니다. LINQ란? LINQ (Language Integrated Query)는 데이터 컬렉션에 쿼리를 실행하기 위한 표준화된 방법을 제공하는 C#의 특징 중 하나입니다. LINQ는 다양한 데이터 소스 (예: 배열, 리스트, 데이터베이스)에 작동하도록 설계되었습니다. SkipWhile 메서드 SkipWhile은 주어진 조건이 참인 동안의 컬렉션 요소들을 건너뛰고, 그 이후의 요소들을 반환합니다. List numbers = new List { 1, 2,..

프로그래밍/C# 2023.08.18

[C#] LINQ 쿼리 구문 연산자와 사용법

안녕하세요, 오늘은 C#의 LINQ(Language Integrated Query) 쿼리 구문 연산자에 대해 알아보려고 합니다. LINQ는 데이터를 조회하고 조작하는 강력한 기능을 제공하는 C#의 주요 기능 중 하나입니다. LINQ 쿼리 구문은 SQL과 유사한 구조를 가지며, 다음과 같은 주요 연산자를 사용합니다: 1. from 연산자 from 연산자는 데이터 소스와 범위 변수를 지정합니다. 쿼리 구문에서는 항상 첫 번째 절로 사용되어야 합니다. List numbers = new List { 1, 2, 3, 4, 5 }; var query = from num in numbers select num; 2. where 연산자 where 연산자는 필터링 조건을 지정합니다. where 절에 지정된 조건을 만족하..

프로그래밍/C# 2023.06.09

[C#] LINQ의 종류와 예제

안녕하세요, 오늘은 C#에서 사용되는 LINQ(Language Integrated Query)에 대해 알아보려고 합니다. LINQ는 데이터를 조회하고 조작하는 강력한 기능을 제공하는 C#의 주요 기능 중 하나입니다. LINQ는 다양한 종류가 있으며, 이 글에서는 그 중 몇 가지를 살펴보고 각각에 대한 예제를 제공하겠습니다. 1. LINQ to Objects LINQ to Objects는 메모리에 있는 데이터에 대해 쿼리를 수행합니다. 이는 배열이나 리스트와 같은 컬렉션에 대해 사용됩니다. List numbers = new List { 1, 2, 3, 4, 5 }; var evenNumbers = from num in numbers where num % 2 == 0 select num; 위의 예제에서는 n..

프로그래밍/C# 2023.06.09

[C#] List<object>를 특정 클래스 타입의 List로 캐스팅하는 방법

오늘은 C#에서 List를 특정 클래스 타입의 List로 캐스팅하는 방법에 대해 알아보겠습니다. 가끔 우리는 List에 특정 클래스 타입의 객체만 포함되어 있다는 것을 알고 있지만, 이를 해당 클래스 타입의 List로 변환해야 하는 상황이 있습니다. 이 경우, LINQ를 사용하여 쉽게 캐스팅할 수 있습니다. 예를 들어, ImageData라는 클래스 타입의 객체만 포함된 List가 있다고 가정해봅시다. 이제 이 List를 List로 캐스팅하고자 합니다. 먼저, 필요한 네임스페이스를 추가합니다. using System.Collections.Generic; using System.Linq; 다음으로, 이미 존재하는 List를 List로 변환하기 위해 LINQ의 OfType 메서드를 사용합니다. List obj..

프로그래밍/C# 2023.03.27

[C#] Linq Where Performance Test

근래에 업무를 진행하면서 계산 속도가 이슈가 되는 일이 많았다. 그래서 최적화 할떄 마다 하나씩 정리하고자 한다. C#을 쓰는 유저들은 잘 아는것처럼 LINQ는 사용하기 너무 편하지만 성능은 메뉴얼 구현보다 느리다는것은 잘 알려진 펙트이다. 이점을 해보고자 한다. LINQ에서 자주 쓰는 Where 구문에 대해 테스트를 하기 위해 아래와 같은 코드를 작성하였다. static void Main(string[] args) { List source = new List { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); sw.Restart(); for (int i = 0; i < ..

프로그래밍/C# 2022.01.26

[WPF] IGrouping 데이터 바인딩 하기

LINQ를 사용하다보면 group를 사용하여 그룹화를 시켜줄 때가 많다. 이때, group 사용 시에 IGrouping Interface를 반환받게 되는데 이것을 데이터 바인딩 하는 방법을 알아본다. Model DTO public class IoTStatus : BindableBase { private int _line; public int Line { get { return _line; } set { SetProperty(ref _line, value); } } private int _table; public int Table { get { return _table; } set { SetProperty(ref _table, value); } } } Service public async Task GetI..

프로그래밍/WPF 2021.05.06
반응형