C# ToDictionary 메서드

C Todictionary Meseodeu



C#의 ToDictionary 함수는 데이터 컬렉션을 사전으로 변환할 수 있는 LINQ 확장 함수입니다. 사전은 엔터티를 개별 키 및 관련 값에 매핑하는 명확하고 실용적인 방법을 제공합니다. 두 개의 인수, 즉 두 개의 대리자 또는 람다 표현식이 필요합니다. 하나는 키를 선택하기 위한 것이고 다른 하나는 컬렉션의 모든 객체에 대한 값을 선택하기 위한 것입니다. 이 문서에서는 일부 C# 코드 예제를 활용하여 ToDictionary 함수의 사용법을 보여줍니다.

통사론:

C# ToDictionary 함수의 다음 구문 내에서 제공되는 각 구성 요소를 하나씩 분석하고 이해해 보겠습니다.



딕셔너리였어 = 수집. To사전 ( 키선택기 , 요소선택기 ) ;
  • 'var' 키워드는 결과 'dict' 사전의 유형 범주를 정의하기 위해 여기에서 제외됩니다. 대부분의 경우 Dictionary입니다. 여기서 K는 키의 유형이고 V는 사전 값의 유형 범주입니다.
  • 'collection' 요소는 'dict' 사전으로 변환하려는 소스 컬렉션을 나타냅니다. 목록, 배열 또는 쿼리 결과와 같은 IEnumerable 인터페이스를 구현하는 모든 클래스일 수 있습니다.
  • 'keySelector' 키워드는 컬렉션의 각 항목에서 키를 추출하는 방법을 지정하는 대리자 또는 람다 식입니다. 컬렉션에서 요소를 인수로 가져오고 해당 항목의 키 값을 반환합니다. 사전에는 중복 키가 있을 수 없으므로 키는 컬렉션의 각 항목에 대해 고유해야 합니다.
  • 'elementSelector' 키워드는 컬렉션의 각 항목에서 값을 추출하는 방법을 지정하는 대리자 또는 람다 식을 참조합니다. 또한 컬렉션의 요소를 인수로 가져오고 해당 항목의 값을 생성합니다.

ToDictionary 함수를 실행하면 컬렉션의 각 항목이 키-값 쌍으로 표시되는 새 사전 개체가 생성됩니다.







예시 1:

코드 예제를 통해 C#에서 ToDictionary 함수를 사용하는 방법을 보여줌으로써 이 가이드를 새롭게 시작해 보겠습니다. 단계별로 살펴보겠습니다.



코드는 가져오는 필수 네임스페이스(System, System.Collections.Generic 및 System.Linq)로 시작됩니다. 이러한 네임스페이스는 컬렉션 및 LINQ 작업에 필요한 클래스와 확장 메서드를 제공합니다. 이 C# 프로그램의 'Main' 메서드를 포함하는 'Dummy' 클래스가 정의됩니다.



“Main” 메서드 내부에 “L”이라는 이름의 목록이 생성됩니다. 이 목록에는 사용자가 선택한 다양한 향수의 이름을 나타내는 세 개의 문자열 요소가 있습니다. ToDictionary 메서드는 'L' 목록에서 호출됩니다. 목록을 사전으로 변환합니다. 목록의 각 문자열 요소는 결과 사전에서 키와 값 역할을 모두 수행합니다.





사전은 키 존재 여부를 확인할 때 대/소문자를 구분하지 않는 비교를 지정하는 데 주로 사용되는 StringComparer.OrdinalIgnoreCase 매개 변수를 사용하여 대/소문자를 구분하지 않는 키 비교로 생성됩니다. 'if' 문은 대소문자를 무시하고 사전에 'bombshell' 키가 포함되어 있는지 확인합니다. 키가 발견되면 'if' 섹션 내의 코드 조각이 처리됩니다. “if” 블록 내에서 Console.WriteLine(“Bombshell presents”) 문이 실행되어 “Bombshell presents” 메시지를 콘솔에 인쇄합니다.

시스템 사용 ;

시스템을 사용합니다. 컬렉션 . 일반적인 ;

시스템을 사용합니다. 린크 ;

클래스 더미

{

공전 무효의 기본 ( )

{

목록 < > = 새 목록 < > ( ) { '블랙오피움' , '폭탄' , '구찌플로라' } ;

향수였어 = 엘. To사전 ( 엑스 => 엑스 , 엑스 => 진실 , 문자열 비교기. 서수대소문자 무시 ) ;

만약에 ( 향수. 키 포함 ( '폭탄' ) )

{

콘솔. WriteLine ( '폭탄은 존재한다' ) ;

}

}

}

사전은 대소문자를 구분하지 않는 비교로 생성되므로 'bombshell' 키는 사전의 실제 'Bombshell' 키와 일치합니다. 결과적으로 다음 첨부된 출력 이미지와 같이 'Bombshell presents' 메시지가 콘솔에 인쇄됩니다.



예 2:

이전 코드 예제에서는 ToDictionary 함수를 통해 간단한 컬렉션을 사전으로 변환하는 방법을 보여주었습니다. 이제 C# ToDictionary 함수 사용을 시연하기 위해 C#의 약간 고급 코드 예제를 살펴보겠습니다. 코드를 한 줄씩 분석해 보겠습니다.

이 그림 코드 조각은 동일한 필수 네임스페이스(System, System.Collections.Generic 및 System.Linq)를 가져오는 것으로 시작합니다. 이러한 네임스페이스는 이 코드 예제에 대한 컬렉션 및 LINQ 작업에 필요한 클래스 및 확장 메서드를 제공합니다. 진입점인 'Dummy' 클래스가 정의됩니다.

C# 언어의 “Main” 메소드 내부에는 “L”이라는 리스트가 생성됩니다. 이 목록에는 가격 및 브랜드와 함께 다양한 화장품을 나타내는 'Data' 클래스의 세 가지 개체가 포함되어 있습니다. 각 데이터 개체는 개체 이니셜라이저 구문을 사용하여 초기화됩니다. 각 개체의 '가격' 및 '브랜드' 속성은 특정 값으로 설정됩니다.

여기에 ToDictionary 메서드가 있습니다. 여기 'L' 목록에서 호출됩니다. 목록을 'Price' 속성이 키로 사용되고 'Brand' 속성이 값으로 사용되는 사전으로 변환됩니다. 결과 사전은 제공된 다음 코드 조각에서 언급한 대로 'Dic' 변수에 할당됩니다. 'foreach' 루프는 'Dic' 사전의 키-값 쌍을 호출하기 위해 캐스팅되었습니다.

루프 내에서 각 쌍의 키와 값은 KeyValuePair 구조의 'Key' 및 'Value' 속성을 사용하여 액세스됩니다. Console.WriteLine 함수 문은 각 키-값 쌍을 콘솔에 인쇄합니다. 출력은 가격과 브랜드 정보를 별도로 표시하기 위해 문자열 보간을 사용하여 형식화됩니다.

여기서 'Data' 클래스는 'Price'(화장품 가격을 나타내는 정수)와 'Brand'(제품의 브랜드 이름을 나타내는 문자열)라는 두 가지 속성으로 정의됩니다.

시스템 사용 ;

시스템을 사용합니다. 컬렉션 . 일반적인 ;

시스템을 사용합니다. 린크 ;

클래스 더미

{

공전 무효의 기본 ( )

{

목록 < 데이터 > = 새 목록 < 데이터 > ( )

{

새로운 데이터 { 가격 = 13000 , 상표 = '후다뷰티' } ,

새로운 데이터 { 가격 = 15000 , 상표 = '샬럿 텔버리' } ,

새로운 데이터 { 가격 = 11000 , 상표 = '나르스' }

} ;

사전 < 정수 , > 12월 = 엘. To사전 ( => 피. 가격 , => 피. 상표 ) ;

각각 ( Dic의 var v )

{

콘솔. WriteLine ( $ '가격: {v.Key}, 브랜드: {v.Value}' ) ;

}

}

}

클래스 데이터

{

공공의 정수 가격 { 얻다 ; 세트 ; }

공개 문자열 브랜드 { 얻다 ; 세트 ; }

}

코드가 실행되면 데이터 개체 목록을 만들고 ToDictionary 메서드를 사용하여 목록을 사전으로 변환한 다음 'foreach' 루프를 사용하여 사전의 키-값 쌍을 표시합니다.

이 코드 예제의 출력은 다음과 같습니다. 특정 속성을 기반으로 사전에 저장된 화장품의 가격과 브랜드를 표시하여 키-값 쌍으로 데이터를 구성하고 액세스할 수 있는 편리한 방법을 제공합니다. 이전 코드의 출력에는 사전에 대한 세 개의 레코드가 표시됩니다.

결론

이 C# 가이드에서는 몇 가지 기본적이고 정확한 코드 그림을 통해 C# ToDictionary 메서드의 사용을 보여주었습니다. ToDictionary 메서드는 키-값 쌍을 설명하는 명확하고 표현력이 풍부한 메커니즘을 제공함으로써 컬렉션을 사전으로 쉽게 전환할 수 있도록 해줍니다. 데이터를 조작하고 변환하는 강력한 C# 유틸리티입니다.