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

  • National Geographic

    National Geo

    7 Mayıs 2006
  • TopDJMag TV

    TopDJMag TV

    29 Temmuz 2010
  • whatever

    whatever

    30 EYLÜL 2005