SORU
5 HAZİRAN 2009, Cuma


Dizilerini( veya dizileri ) C sözlüğünde anahtarları gibi#

C Sözlük bir arama tablosu yapmaya çalışıyorum#. Bir dize değerleri 3-Kayıt düzeni çözmek gerekiyor. Anahtarları gibi dizileri kullanarak denedim, ama bu işe yaramadı, ve ne yapacağımı bilmiyorum. Bu noktada Sözlükler Sözlükler, bir Sözlük yapmayı düşünüyorum, ama muhtemelen javascript onu yapardım nasıl olsa bakmak çok güzel olurdu.

CEVAP
5 HAZİRAN 2009, Cuma


Eğer .NET 4.0 bir Demet kullanın:

lookup = new Dictionary<Tuple<TypeA, TypeB, TypeC>, string>();

Bir Demet tanımlamak ve bunu anahtar olarak kullanabilirsiniz. Demet GetHashCode, Eşit ve İEquatable geçersiz kılmak gerekir:

struct Tuple<T, U, W> : IEquatable<Tuple<T,U,W>>
{
    readonly T first;
    readonly U second;
    readonly W third;

    public Tuple(T first, U second, W third)
    {
        this.first = first;
        this.second = second;
        this.third = third;
    }

    public T First { get { return first; } }
    public U Second { get { return second; } }
    public W Third { get { return third; } }

    public override int GetHashCode()
    {
        return first.GetHashCode() ^ second.GetHashCode() ^ third.GetHashCode();
    }

    public override bool Equals(object obj)
    {
        if (obj == null || GetType() != obj.GetType())
        {
            return false;
        }
        return Equals((Tuple<T, U, W>)obj);
    }

    public bool Equals(Tuple<T, U, W> other)
    {
        return other.first.Equals(first) && other.second.Equals(second) && other.third.Equals(third);
    }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jon Reed

    Jon Reed

    14 AĞUSTOS 2006
  • Major FX

    Major FX

    6 HAZİRAN 2012
  • Shylo Sharity

    Shylo Sharit

    27 EKİM 2011