SORU
3 Kasım 2011, PERŞEMBE


Nasıl kolayca Dizilerini bir liste başlatmak için?

tuples seviyorum. Hızlı bir şekilde ilgili bilgileri bir araya için yapı veya bir sınıf yazmak zorunda kalmadan grup için izin verir. Bu çok yerelleştirilmiş kod yeniden yapılandırması sırasında çok yararlıdır.

Bunları bir liste başlatılıyor ancak biraz gereksiz gibi görünüyor.

var tupleList = new List<Tuple<int, string>>
{
    Tuple.Create( 1, "cow" ),
    Tuple.Create( 5, "chickens" ),
    Tuple.Create( 1, "airplane" )
};

Orada daha iyi bir yolu yok mu? Dictionary initializer çizgisinde bir çözüm isterdim.

Dictionary<int, string> students = new Dictionary<int, string>()
{
    { 111, "bleh" },
    { 112, "bloeh" },
    { 113, "blah" }
};

Biz benzer bir sözdizimi kullanabilir mi?

CEVAP
3 Kasım 2011, PERŞEMBE


Evet! This is possible.

{ }koleksiyon sözdizimi başlatıcı herhangi çalışırIenumerable bir olan tipEkleyinargümanlar doğru miktarda yöntemi. Altında çalışan kapakları nasıl rahatsız olmadan, bu anlamına gelir sadece uzanmaktadırListe<T>başlatmak için , özel bir Ekle Ekleme yöntemi Tve bitirdiniz!

public class TupleList<T1, T2> : List<Tuple<T1, T2>>
{
    public void Add( T1 item, T2 item2 )
    {
        Add( new Tuple<T1, T2>( item, item2 ) );
    }
}

Bu şu: yapmanızı sağlar

var groceryList = new TupleList<int, string>
{
    { 1, "kiwi" },
    { 5, "apples" },
    { 3, "potatoes" },
    { 1, "tomato" }
};

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Fr. Eckle Studios

    Fr. Eckle St

    29 Kasım 2006
  • jkimisyellow

    jkimisyellow

    6 Mayıs 2009
  • WiseOwlTutorials

    WiseOwlTutor

    21 EKİM 2011