2016-04-08 30 views
0

Bu kod var ve Dictionary değerlerini göstermiyor Dictionary değerlerini göstermiyor, çünkü bu C# çalıştırdığımda işimi bir kez kontrol etmem gerekiyorC# sözlük içinde görüntü değeri #

System.Collections.Generic.List`1 [System.string] UnityEngine.Debug: Log (Object)

public Dictionary<char, List<string>> wordsMap; 

void ProcessWordSource (string data) { 

    var words = data.Split('\n'); 
    foreach (var entry in words) 
    { 
     var c = entry[0]; 
     if (!wordsMap.ContainsKey(c)) 
     { 
      wordsMap.Add (c, new List<string>()); 
     } 
     wordsMap[c].Add(entry.TrimEnd()); 
    } 
    foreach (var pair in wordsMap) 
    { 
     Debug.Log(pair.Value.ToString()); 
    } 
} 
+0

bu sorun çözüldü mü? – Programmer

cevap

3

Sen iç List<string> görüntülemek için o doğrulmak gerekir düzgün ve String.Join o size yardımcı olabilir:

Debug.Log(string.Join(", ", pair.Value)); 

bu yönteme bir List<T> geçirmeden desteklemez .NET Framework sürümünü kullanıyorsanız, öncelikle bir dizi dönüştürmek gerekebilir.

Debug.Log(string.Join(", ", pair.Value.ToArray())); 

sizin Sözlüğünde değer

bir koleksiyon olduğunu ve normaldir üzerinde size ToString() Aradığınızda (toplama tipi) ne görüyorsanız. Aslında, sadece tipini verir tabana Object.ToString() method e ToString() varsayılan geçersiz kılmaz herhangi bir nesne:

// Returns a String which represents the object instance. The default 
// for an object is to return the fully qualified name of the class. 
public virtual String ToString() 
{ 
    return GetType().ToString(); 
} 
+0

teşekkürler adamım ama denedim ve burada ne elde ettim ** String.Join (string, string []) 'için bazı geçersiz argümanlar ** hatası var. Hata CS1503: Argüman '# 2'' Sistemi dönüştürebilir. Collections.Generic.List 'ifadesi 'string []' yazısına teşekkürler. –

+1

Hangi Framework Sürümü kullanıyorsunuz? Debug.Log (String.Join (",", pair.Value.ToArray())), "çalışıyor mu? – Corak

+0

ya bu harika çalışıyor teşekkürler çok mono.net 4 –

İlgili konular