본문 바로가기

Generic

List 제네릭의 FindAll 와 delegate 로 동일한값 비교하기 public void Main() { var developers = new List(new [] { "Woody Allen", "Bill Gates" } ); var greatDeveloperFirstName = "Bill"; var greatDevelopers = developers.FindAll( delegate (string developerName) { return developerName.StartsWith(greatDeveloperFirstName); }); }
Generic Array 을 유용하게 사용해 보자 일반적인 .NET FRAMEWORK 2.0 는 배열에 대해 약간의 GENERIC 함수들을 제공해 줍니다. 그러나 이 함수 이외에 코드에서 배열의 요소들을 합치거나 제거하는 기술을 구현할 때가 종종 있죠. 따라서 이러한 기술을 구현하기 위해서 우선적으로 GENERIC 클래스에 대한 기본지식을 가지고 있어야 합니다. 즉 Lists, Arrays 이외 말이죠. 이러한 Array 객체들은 다소의 유용한 GENERIC 함수들을 아래와 같이 포함하고 있습니다. ConvertAll Exists Find Resize TrueForAll 하지만 이러한 함수들은 때때로 작업을 하는데 전부 만족스럽지 않아서, 약간의 확장을 하여 사용합니다. Append 제네릭 함수는 Array 제네릭의 Resize 메소드를 이용하여 공간을..
LINQ 의 쿼리문법과 림다문법 비교문서 Filtering var col = from o in Orders where o.CustomerID == 84 select o; var col2 = Orders.Where(o => o.CustomerID == 84); Return Anonymous Type var col = from o in orders select new { OrderID = o.OrderID, Cost = o.Cost }; var col2 = orders.Select(o => new { OrderID = o.OrderID, Cost = o.Cost } ); Ordering var col = from o in orders orderby o.Cost ascending select o; var col2 = orders.OrderBy(o =..
성능 프로파일러를 사용하여 Generic(제네릭) 리스트와 ArrayList 비교 성능 프로파일러를 사용하여 제네릭 리스트와 ArrayList 비교 Bill Gibson, 프로그램 관리자 Microsoft Corporation 적용 대상 : Microsoft Visual Studio 2005 Team System 프로파일러를 사용하여, 제네릭 리스트 구현과 ArrayList 구현의 성능 검토 Visual Studio Team System 2005 에는 새롭고 강력한 성능 프로파일러 도구가 있습니다. 이 프로파일러에서는 샘플링 (정기적인 간격으로 프로그램 상태의 스냅샷을 생성)과 계측 (함수의 시작 포인트와 종료 포인트를 모두 파악하기 위해서 어셈블리에 코드 삽입) 이라는 두 가지 방법으로 데이터를 캡쳐 할 수 있습니다. 또, 이 프로파일러는 네이티브 및 매니지 실행가능 파일, DLL ..
Generic(제네릭) 할당값 정렬해서 출력하기 이번 내용은 Generic 의 정렬에 대해서 설명을 하고자 합니다. MSDN 에 기재된 제네릭을 한번 읽어보고 진행하죠. 제네릭은 2.0 버전의 C# 언어와 CLR(공용 언어 런타임)에 새로 도입된 기능입니다. 제네릭을 통해 .NET Framework에 형식 매개 변수라는 개념이 처음 소개되었습니다. 형식 매개 변수를 사용하면 클라이언트 코드에서 클래스나 메서드를 선언하고 인스턴스화할 때까지 하나 이상의 형식 지정을 연기하는 클래스와 메서드를 디자인할 수 있습니다. 예를 들어, 다음과 같이 제네릭 형식 매개 변수 T를 사용하면 런타임 캐스트나 boxing 작업에 따른 비용이나 위험을 초래하지 않은 채 다른 클라이언트 코드에서 사용 가능한 단일 클래스를 작성할 수 있습니다. - msdn 발췌 제네릭의 정렬..
List Generic (제네릭) 을 이용한 간단한 예제 - 2 2번째 간단한 예제 나갑니다. 아래의 예제는 "List 제네릭을 이용한 간단한 예제 - 1" 강좌에서 언급한 소스 내용이니 여기서 간단히 넘어가겠습니다. static void Main(string[] args) { List pList = new List(); pList.Add(new Person(1, "John", "", "Shields", 29, 'M')); pList.Add(new Person(2, "Mary", "Matthew", "Jacobs", 35, 'F')); pList.Add(new Person(3, "Amber", "Carl", "Agar", 25, 'M')); pList.Add(new Person(4, "Kathy", "", "Berry", 21, 'F')); pList.Add(new ..
List 제네릭을 이용한 간단한 예제 - 1 C# 2.0 에서 제공하는 Generic 에 대해서 조금이나마 예제가 필요하시는 분들을 위해서 기재해 볼 까 합니다. List(T) 제네릭은 index 를 이용하여 접근할 수 있기도 하면서 최대한의 수행을 제공하기 위한 최상의 optimize 가 된 강한 type 형인 collection 으로써 보여줍니다. 해당 클래스를 이용하여 loop, filter, sort 그리고 collection 조합 등을 제공하는 메소드가 있습니다. 이와 비슷한 클래스가 c# 1.x 버전에 존재하는 ArrayList 클래스가 있습니다. 이번에 설명할 내용은 조합된 list 내용을 가지고 search, sort, loop 와 같은 공통적인 수식어를 이용하는 것을 보실 수 있습니다. 해당 설명한 내용에서 눈여겨 볼 부분은 Gen..
인터페이스를 이용하여 LINQ 구문 구현해 보기 이번에 보여줄 내용은 단순한 LINQ 쿼리 구문이 아니라 확장성과 패턴상 이런 방법으로도 구현할 수 있다는 것을 보여주고자 이렇게 글을 씁니다. 먼저 간단한 성, 이름, 그리고 호칭에 대한 클래스안에 프로퍼티를 만들어 보겠습니다. public class Name : IName { // 성 public string FirstName { get; set; } //이름 public string LastName { get; set; } //호칭 public string Prefix { get; set; } } 위의 코드를 보면 IName 의 인터페이스를 사용했습니다. 그럼 인터페이스는 어떻게 구현되어 있는지 확인해 보죠. public interface IName { string FirstName{get;set;..