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

  • Dumb Stupid Videos

    Dumb Stupid

    26 Kasım 2013
  • MndsgnVEVO

    MndsgnVEVO

    26 Kasım 2013
  • PC Learning Zone - Computer Training

    PC Learning

    8 EYLÜL 2006