C#에서 터플과 세트처럼 파이썬의 일부 기능을 사용하고 싶습니다. 그들을 구현해야합니까? 이미 구현 되었습니까? 누구든지 .net 언어에 대한 동적 데이터 구조 라이브러리를 알고있을 수 있습니까?C#에서 터플과 세트를 시뮬레이트하는 방법은 무엇입니까?
16
A
답변
14
3
집합의 경우, HashSets (.NET 3.5 기능)은 아주 잘합니다. 튜플
부분적인 답 :
- .NET 4.0 tuples 대 [어떤] 지원을 제공한다.
- 이전 버전의 C#에서는 익명 형식을 사용할 수 있습니다 (모든 LINQ와 함께 .Net 2.0, 3.0에서 소개 된 것 같습니다).
이러한 접근 방식 중 어느 것도 Python과 마찬가지로 편리하지 않습니다. 주요 장애는 C#이 정적으로 입력된다는 사실에서 비롯됩니다. 그러나 C# 4.0 Tuple 클래스에는 튜플 생성을 더 쉽게 만드는 팩토리 형 정적 메서드가 있습니다 (최대 8 개 튜플, 즉 8 개 멤버가있는 튜플). 예를 들어 하나 가질 수 있습니다
var customer1 = Tuple.Create("John", "Smith", 14, 5.33, "202-123-444");
다음과 같이 익명 유형을 사용할 수 있습니다. 이 방법의 주요 단점은, 하나의 초기화에 사용되는 값은 다른 객체에서 "돌출"경우에는이 명칭은 "투영"암시 될 수 있지만 (명시 적으로 "튜플"의 요소 이름을 필요로한다는 것이다.
customer1 = new Customer { Name = "John", Surname = "Smith", NumberOfVisits = 14, CurrentBalance = 5.33, PhoneNr = "202-123-444" };
1
앞서 언급 한 .NET Framework를 사용하는 경우 Wintellect Power Collections에 관심이있을 수 있습니다. 2 및 3 튜플의 경우 Pair
및 Triple
이고 Set
, Bag
및 Ordered
과 같은 모음 인 경우 모두 유용합니다.
물론 4.0의구현을 막을 수있는 방법은 없습니다.자신.
"... 단지 튜플 같다"만 2 튜플이기는하지만 (그건 그렇고, 및 자신의 이와 같은 데이터 구조에 대해 특히 '동적'아무것도 없다). – Thomas
@ 토마스 예, 2 튜플을 지정하려고했습니다. 수정 및 수정 됨. 감사. –
keyvaluepair는 절대 터플이 아닙니다. 그것을 편집하십시오. – nawfal