Bu benim düşünebildiğim en özlü yoludur: Ancak
var result = string.Join(", ", map.Select(m => m.Key + ":" + m.Value).ToArray());
, senin koşullara bağlı olarak , Bu olabilir Daha hızlı (her ne kadar çok şık değil) olması: 10.000 tekrarlamalar değişen sayıda (yukarıda her ran
var result = map.Aggregate(new StringBuilder(),
(a, b) => a.Append(", ").Append(b.Key).Append(":").Append(b.Value),
(a) => a.Remove(0, 2).ToString());
; 1,000,000; 10.000.000) üç öğeli sözlüğünüzde ve dizüstü bilgisayarımda, bu oran ortalama% 39 daha hızlıydı. 10 elemanlı bir sözlükte, ikincisi sadece% 22 daha hızlıydı.
Ben hemen hemen aynı performansı göz önüne alındığında, birleştirme yerine biraz dize oluşturucu atıyor şüpheli olarak ilk örnekte, basit dize birleştirme Unutulmaması gereken bir diğer şey,
mccow002's answer içinde
string.Format()
varyasyon yaklaşık% 38 daha hızlıydı
ölçütler.
sonuç dizesinden özgün sözlüğü tekrar oluşturmak için böyle bir şey yapabileceğini:
var map = result.Split(',')
.Select(p => p.Trim().Split(':'))
.ToDictionary(p => p[0], p => p[1]);
Didn ' benimkini göndermeden önce seninkini görüyorum. Parlak düşünme için +1 :) – mccow002
@CoryLarson Ah, havalı. Yorum: geri çekildi. – dlev
Bu varyanttan nasıl orijinal sözlüklere geri dönebilirim? – zipi