2009-03-09 12 views
3

Java'da java.util.Arrays sınıfı, bir dizi alan ve dize temsilini döndüren çeşitli statik toString(...) yöntemlerine sahiptir (yani, içeriğin dize olarak gösterilmesi) virgülle ayrılmış dizinin ve köşeli parantez içine alınmış tüm gösterimin - örneğin "[1, 2, 3]").Java için java.util.Arrays.toString (...) yöntemlerinin .NET eşdeğeri

.NET'te eşdeğer bir yöntem/işlev var mı?

Dizide yinelemek için bir döngü/yöntem el ile oluşturmaya başvurmadan bunu yapan bir yöntem arıyorum.

cevap

3

String.Join yöntemi.

+0

Bu çözüm, yalnızca dizi zaten bir dizgi olduğu zaman çalışır. – JaredPar

+0

Doğru. Bunun için talep edildiğini varsaymıştım. –

+0

@Mitch, [1, 2, 3] örneğine göre daha genel bir çözüm aradığını düşündüm. Ama seninkini kabul etti, böylece geri aldım. – JaredPar

1

bu deneyin [Sen köşeli parantez kendiniz eklemeniz gerekecektir]. NULL değerlerini işlemez, ancak değer türleri ve referans türlerine karşı çalışır. Bir uzantı yöntemi olduğundan, herhangi bir dizi örneğinde .ToElementString() öğesini çağırabilirsiniz. İşte

public static string ToElementString<T>(this T[] array) { 
    var middle = array.Select(x => x.ToString().Aggregate((l,r) => l+","+r); 
    return "[" + middle + "]"; 
} 

bir inşaatçı kullanır ve potansiyel olarak biraz daha verimli (sadece profilci kesin bilir) olacaktır bir sürümüdür. Aynı zamanda boş değerleri de ele alacaktır.

public static string ToElementString<T>(this T[] array) { 
    var builder = new StringBuilder(); 
    builder.Append('['); 
    for(int i =0; i < array.Length; i++) { 
    if (i > 0) { 
     builder.Append(','); 
    } 
    builder.Append(array[i]); 
    } 
    builder.Append(']'); 
    return builder.ToString(); 
}