所以我试图打印出我列表中的成员。我使用以下字典结构:SortedDictionary<string,List<int>>
其中我使用字符串作为键。
在我的函数ShowContents
中,我试图打印出我正在查看的条目,元素的数量以及元素的含义。这就是我挣扎的地方。我只是获得System.Collections.Generic.List1[System.Int32]
而不是对象。
这是我目前的代码:
SortedDictionary<string,List<int>> jumpStats = new SortedDictionary<string,List<int>>(); // jumpstats[0] == (volt, 10m)
public string ShowContents()
{
var sb = new StringBuilder();
foreach (KeyValuePair<string, List<int>> item in jumpStats)
{
sb.Append(string.Format("{0}: has {1} entries with values {2}", item.Key, item.Value.Count(), item.Value));
}
return sb.ToString();
}
public SortedDictionary<string,List<int>> addjumpStats() //Adding information about the jump to the dictionary
{
try
{
jumpStats.Add("Volt", new List<int>());
jumpStats["Volt"].Add(12);
jumpStats["Volt"].Add(13);
jumpStats["Volt"].Add(15);
}
catch (ArgumentException)
{
Console.WriteLine("An Element already exists with the same key");
}
return jumpStats;
}
现在输出示例:Volt: 3 System.Collections.Generic.List1[System.Int32]
答案 0 :(得分:1)
在你的追加函数中你输出item.Value是List<int>
因此你看到类名的原因 - List的ToString函数不知道连接列表中的所有值在一起 - 它只返回类名。你需要告诉它该怎么做。一个简单的方法是使用string.join:
string.Join(",", item.Value)
在上下文中:
var sb = new StringBuilder();
foreach (KeyValuePair<string, List<int>> item in jumpStats)
{
sb.Append(string.Format("{0}: has {1} entries with values {2}", item.Key, item.Value.Count(), string.Join(",", item.Value));
}
return sb.ToString();