修改字典中的结构体值

本文关键字:结构体 字典 修改 | 更新日期: 2023-09-27 18:14:56

我创建了一个字典,它接受结构体的值并存储它们。填写如下:

_screenEntry.type = typeof(string);
_screenEntry.value = tagTextBox.Text;
_screen.nodeDictionary.Add("Tag ", _screenEntry);

作为参考,我的结构看起来像这样:

public struct Entry
{
    public Object value;
    public Type type;
}

无论如何,我现在试图修改我第一次存储的值。我只是试着回忆一下nodeDictionary。再次添加,希望它能覆盖我以前的条目。然而,我得到一个错误,说我的字典已经有一个名为"标签"的键,这是不言自明的。

我在google上搜索了一下,发现如果我想覆盖我的初始值,我只需要调用这一行:
_screenTag = tagTextBox.Text;    
_screen.nodeDictionary["Tag "] = _screenTag;

但是我得到以下错误:

错误2无法隐式地将类型"string"转换为"InMoTool"。输入"

我真的不知道如何转换这个。有人能给我指一下路吗?

修改字典中的结构体值

使用下面的代码

_screenTag = tagTextBox.Text; // <-- is a string   
_screen.nodeDictionary["Tag "] = _screenTag;

您正在尝试将string分配给Entry。这是不可能的。

我认为你需要的是这样的东西:

 _screenTag = tagTextBox.Text;    
 _screen.nodeDictionary["Tag "] = new Entry {
                                        type=_screenTag.GetType(), 
                                        value=_screenTag
                                      };