C# 将对象引用存储到字典中

C# 将对象引用存储到字典中,c#,.net,C#,.net,我有两个类,如下所示 public class StoredData { private int totalLoops; [XmlElement("TotalLoops")] public int TotalLoops { get { return totalLoops; } set { totalLoops = Math.Abs(value); } } [XmlArray("LoopTypes"), XmlAr

我有两个类,如下所示

public class StoredData
{
    private int totalLoops;

    [XmlElement("TotalLoops")]
    public int TotalLoops
    {
        get { return totalLoops; }
        set { totalLoops = Math.Abs(value); }
    }

    [XmlArray("LoopTypes"), XmlArrayItem("LoopType", typeof(LoopType))]
    public Dictionary<int, LoopType> loopTypes;

}
我正在使用以下代码将“LoopType”对象添加到字典中

StoredData data = new StoredData();
LoopType1 looptype = new LoopType();
looptype.StartTime = new TimeSpan(starthourtext, startminutetext, startsecondtext);
looptype.EndTime = new TimeSpan(endhourtext, endminutetext, endsecondtext);
data.loopTypes.Add(1,looptype);
LoopType looptype;
data.loopTypes.TryGetValue(1, out looptype);
最重要的是,所有代码都可以正常工作,但当我想从字典中检索数据时,就像我想得到字典中存储对象的“StartTime”一样。为此,我尝试了以下代码

StoredData data = new StoredData();
LoopType1 looptype = new LoopType();
looptype.StartTime = new TimeSpan(starthourtext, startminutetext, startsecondtext);
looptype.EndTime = new TimeSpan(endhourtext, endminutetext, endsecondtext);
data.loopTypes.Add(1,looptype);
LoopType looptype;
data.loopTypes.TryGetValue(1, out looptype);

但我无法检索“StartTime”值。它不显示intellisense中的任何属性。非常感谢您的帮助。

在哪里声明了
LoopType1
?您是指
LoopType
吗?另外,您是否尝试在反序列化/序列化后获取
StartTime
?如果是这样,在从
startTime
获取值之前,您将无法检查
startTime
字符串。感谢您的回复。是的,我是指LoopType,我目前不担心反序列化。检查TryGetValue的返回值,例如var result=data.LoopType(i,LoopType)。如果为false,请检查您传入的密钥,以确保它是正确的密钥。您真的在单个函数中完成了所有这一切吗?在初始化和调用
TryGetValue
之间,您可能正在销毁和/或创建一个新的
StoredData
对象。