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

  • Chaoticmoogle

    Chaoticmoogl

    13 ŞUBAT 2006
  • Hot For Nutrition

    Hot For Nutr

    26 ŞUBAT 2007
  • Matt Steffanina

    Matt Steffan

    1 EYLÜL 2011