SORU
28 EYLÜL 2008, Pazar


İnt katılmak için [nasıl] bir karakter dize içinde ayrılmış .NET?

Tamsayılar bir dizi var: int [] number = new int[] { 2,3,6,7 };

Ne en kolay yoludurnumarasını bir karakteri tarafından ayrılmış tek bir dize bu dönüştürme(gibi: "2,3,4,7")?

Ben C# ve .NET 3.5.

CEVAP
28 EYLÜL 2008, Pazar


var ints = new int[] {1, 2, 3, 4, 5};
var result = string.Join(",", ints.Select(x => x.ToString()).ToArray());
Console.WriteLine(result); // prints "1,2,3,4,5"

EDİT:

Birkaç çözüm StringBuilder kullanımı reklamını görüyorum. Birileri yöntemi Katılın şikayet IEnumerable bir argüman almalıdır.

Seni hayal kırıklığına uğratacağım :) String.Birleştirme tek bir nedeni - performans için bir dizi gerektirir. Etkin bellek gerekli miktarda önceden ayır veri boyutunu bilmek katılın yönteme ihtiyacı var.

Burada String iç uygulamasının bir parçası.Birleştirme yöntemi:

// length computed from length of items in input array and length of separator
string str = FastAllocateString(length);
fixed (char* chRef = &str.m_firstChar) // note than we use direct memory access here
{
    UnSafeCharBuffer buffer = new UnSafeCharBuffer(chRef, length);
    buffer.AppendString(value[startIndex]);
    for (int j = startIndex   1; j <= num2; j  )
    {
        buffer.AppendString(separator);
        buffer.AppendString(value[j]);
    }
}

Önerilen yöntemlerin performansını karşılaştırmak için çok tembelim. Ama bir şey Katıl kazan:) bana söyler

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Megan Parken

    Megan Parken

    19 Temmuz 2009
  • Sergio Lafuente Rubio

    Sergio Lafue

    11 Aralık 2008
  • ShayLoss

    ShayLoss

    5 Kasım 2009