&Quot Set&quot, 있을 수 있다. net 데이터 구조에?

가장 이상적인 I& 찾고, 체계화된 로털 설정되었습니다 # 39 m 클래스. 모든 표준 설정 작업 등 좋았을 거라는 합집합, 교집합, Etc., 및 축소 중복됨 할 수 있습니다.

내가 내 스스로 됐지 만들기 클래스 C #, - 그냥 &gt Dictionary&lt 설정되었습니다 따라 키를 사용하여.

Skurmedel
그는 10년 전 댓글을 달았습니다
0

@d03boy: 뭐, T&gt HashSet&lt 있다. 지금은 좀 사용한 후 인터페이스입니다 상행담관염이라고 그것은됐다 생각한다.

Eric Hauser
그는 10년 전 댓글을 달았습니다
5

(가) 와 함께 닷넷 (.net) 기반 구축, 하시세 스페인스트 이세티 인터페이스입니다 2 4

답변 6 개

',' HashSet&lt, T&gt 란 you& # 39, ll get, 가장 가까운 것 같아요.

spender
Derek Park
그는 12년 전 댓글을 달았습니다
0

맷, +1. 그는 그렇게 들리지만 정확히 어떤 주문하신거. 추가한 뒤 오랫동안 고데프로젝트 기사 쓴 것처럼 보인다.

내가 본 가장 멋진 # 39 의 일부분으로 구축현 설정되었습니다 Wintellect& 꾩썝 모음집: http://www.codeplex.com/PowerCollections.

구축현 설정, br /&gt here:&lt 찾을 수 있습니다. [http://www.codeplex.com/PowerCollections/SourceControl/FileView.aspx? =, = 6259 itemId 101886&amp 창스티드] [2] &lt br />; 이 회사는 올해 모든 설정 작업 (union, 교차될 등).

이를 통해 희망을!

[2]: http://www.codeplex.com/PowerCollections/SourceControl/FileView.aspx =, = 6259 창스티드 101886&amp itemId?

아니, 저기 있는 프레임워크입니다 거의 없다. There is an open source 구축 프로젝트를 리시스콜레스티언스트 불렀으매 사용할 수 있는 대부분의 (즉 네이베르나트) # 39 에 관한 기사를 한 here& 고데프로젝트 있다.

http://www.codeproject.com/KB/recipes/sets.aspx

당신은 체크된다면 아웃해야 하시세 (3.5 인치?

C #, # 39 는 don& 내가 아무 것도 없는 것 같습니다 하지만 내가 아는 두 가지 기능이 내장되어 있는 부동 수립하였습니다 구축에 나선다. 또한 몇 가지 좋은 기사 중심으로 이러한 종류의 것.

[1] 의 [이것은 부품 6] 에 대한 일련의 효율적을 사이트용 데이터 구조. 이 부분은 C # 의 집합을 표현하는 데 초점을 맞추고 있다.

구현 의, 집합 취합은 &lt br&gt. 구현 세트 class&lt br>; 또 다른 구축상의 세트 클래스

마지막으로.

39, ve i& 실제로 사용된 이 라이브러리 나 자신을 기준으로 한 해 또는 그 세트를 구축상의 못한 게 없다.

[1]: 이아스파스 http://msdn.microsoft.com/en-us/library/ms379575 (VS.80)

39 의 here& 간단한 구현.

public sealed class MathSet<T> : HashSet<T>, IEquatable<MathSet<T>>
{
    public override int GetHashCode() => this.Select(elt => elt.GetHashCode()).Sum().GetHashCode();

    public bool Equals(MathSet<T> obj) => SetEquals(obj);

    public override bool Equals(object obj) => Equals(obj as MathSet<T>);

    public static bool operator ==(MathSet<T> a, MathSet<T> b) =>
        ReferenceEquals(a, null) ? ReferenceEquals(b, null) : a.Equals(b);

    public static bool operator !=(MathSet<T> a, MathSet<T> b) => !(a == b);
}

사용 예시:

var a = new MathSet<int> { 1, 2, 3 };
var b = new MathSet<int> { 3, 2, 1 };

var c = a.Equals(b);                        // true

var d = new MathSet<MathSet<int>> { a, b }; // contains one element

var e = a == b;                             // true

이 질문 '는 이 넘는 것으로 지켜보리니 이유에 대해서 외곽진입 하시세'.