SORU
2 Ocak 2009, Cuma


C dizi dilimleri#

Bunu nasıl yapıyorsun? Bir bayt dizisi verilir

byte[] foo = new byte[4096];

Nasıl ayrı bir dizi olarak dizinin ilk x bayt alabilirim? (Özellikle, IEnumerable<byte>) ihtiyacım var

Bu Sockets ile çalışmak için. En kolay yolu dizi doğrama, Perls sözdizimi benzer olmalı:

@bar = @foo[0..40];

@bar diziye ilk 41 öğeleri döndürür. C bir şey var# kayıp olduğumu, yoksa yapmam gereken başka bir şey var mı?

SERİ benim için bir seçenek değil (.Eğer herhangi bir yardım ederse NET 3.5),.

CEVAP
2 Ocak 2009, Cuma


Diziler foo IEnumerable<byte> kendisi sayısız, çok. Sadece Take() dizisi gibi yöntemler bunun dışında istediğinizi elde ETMENİZ (Using System.Linq ile Seri ad eklemeyi unutmayın):

byte[] foo = new byte[4096];

var bar = foo.Take(41);

Eğer gerçekten IEnumerable<byte> herhangi bir değer bir dizi gerekiyorsa, bunun için ToArray() yöntemi kullanabilirsiniz. Burada durum gibi görünmüyor.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bcbauer

    bcbauer

    7 ŞUBAT 2007
  • chickenby

    chickenby

    2 HAZİRAN 2008
  • Karan Thakur

    Karan Thakur

    23 HAZİRAN 2010