c# - 字典包含它时不会从不同的类返回值

标签 c# dictionary

我试图保存有关用户 SteamID 及其在游戏中的位置的信息,这是我每 0.5 秒将此人传送到保存位置的代码,并且在控制台中返回此信息时效果很好

键:76561198333850828,值:(605.0, 41.8, 618.5)

  IDictionary<Steamworks.CSteamID, Vector3> numberNames = new Dictionary<Steamworks.CSteamID, Vector3>();

                        while (numberNames.Count > 0)
                        {
                            foreach (KeyValuePair<Steamworks.CSteamID, Vector3> info in numberNames)
                            {
                                UnturnedPlayer steamidplayer = UnturnedPlayer.FromCSteamID(info.Key);
                                steamidplayer.Teleport(info.Value, 0);
                                Console.WriteLine("Key: {0}, Value: {1}", info.Key, info.Value);
                                await Task.Delay(TimeSpan.FromSeconds(0.5));
                            }
                        }

然而,当我试图从不同类别的字典中删除信息时,它说该字典不包含任何内容

        internal void remname(Steamworks.CSteamID SteamID)
        {
            if (numberNames.ContainsKey(SteamID))
            {
                numberNames.Remove(SteamID);
            } else
            {
                Console.WriteLine("Doesnt contains");
            }
        }

而且我完全不知道是什么导致了这个问题。

最佳答案

您是如何定义 numberNames 的? 如果有 2 个定义,每个类一个,那么即使它们共享相同的名称,它们也是完全不同的对象。

即使一个类中有一个定义,除非它是静态的,否则同一类的不同实例将具有不同的对象。

关于c# - 字典包含它时不会从不同的类返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67424791/

相关文章:

c# - 转换器显示枚举的描述,并在从 wpf 的组合框中选择项目时转换回枚举值

c# - 使用 "ExcelDataReader"获取背景颜色

c# - 字典键的两个字符串

python - 如果数组包含输入,则消除数组内的列表

Python - 对存储在字典中的列表中的项目进行计数和分组

c# - 在 C# 中提取 .cab 文件

c# - 我可以在没有Unity3D编辑器的情况下创建assetbundle吗

c# - Windows Phone 7 中的异步 XML 读取

java - 在 Java LoginModules 之间传递信息(通用映射问题)

c# - 在列表集合中查找重复项