我不是最好的C#,我在这段代码中得到了一个堆栈溢出代码:
private Dictionary<T, V> collection;
internal List<KeyValuePair<T, V>> ToList()
{
return collection.ToList(); //the VS debugger breaked here
}
以下是完整的课程:http://pastebin.com/ji0Vrm0X
希望有人能找到堆栈溢出功能。
继承了更多信息:$
internal QueuedDictionary<int, RoomUser> UserList
{
get
{
return userlist;
}
}
internal List<RoomUser> GetRoomUsers()
{
List<KeyValuePair<int, RoomUser>> users = UserList.ToAList();
List<RoomUser> returnList = new List<RoomUser>();
foreach (KeyValuePair<int, RoomUser> pair in users)
{
if (!pair.Value.IsBot)
returnList.Add(pair.Value);
}
return returnList;
}
答案 0 :(得分:2)
从字典中明确创建新的KeyValuePair<T,V>
元素,然后列出它:
internal List<KeyValuePair<T, V>> ToList()
{
return collection.Select(kvp => new KeyValuePair<T,V>(kvp.Key, kvp.Value).ToList();
}
应该执行您想要的操作。
修改我希望您的代码能够正常运行。可能是Dictionary的.ToList()
方法与.Select(x => x.Value)
类似,而不是返回List<KeyValuePair<X,Y>>
。
但那只是我的猜测。