【发布时间】:2015-09-04 07:00:46
【问题描述】:
我有一本字典:
private Dictionary<MetaInfoValueGroupTag, List<object>> checkedMetainfoValues;
如您所见,Key 类是MetaInfoValueGroupTag:
private class MetaInfoValueGroupTag
{
private string metainfo;
//...
public string MetaInfo
{
get { return metainfo; }
set { metainfo = value; }
}
//...
}
我需要使用字符串对象获取Value。所以,我需要根据string来检查一个key是否存在。
此string 值表示MetaInfoValueGroupTag 字典键对象的Metainfo property string 内容。
List<object> values = null;
this.checkedMetainfoValues.TryGetValue("metainfo_sample", out values);
我不想写:
List<object> values = null;
this.checkedMetainfoValues.TryGetValue(new MetaInfoValueGroupTag("metainfo_sample"),
out values);
我想避免必须创建一个新的转储key 对象来获取它的值。
我发现一定可以实现IComparer 或使用AnonymousComparer。
【问题讨论】:
-
"为了获取它的值" - 如果值在语义上属于字符串,而不是
MetaInfoValueGroupTags,为什么不通过string键入字典? -
我需要将一些额外信息与每组值关联起来。
-
你不能使用 Tuple
> 作为值吗?所以你将使用 Dictionary >>. -
我认为它在乎什么......难道我的方法无法解决吗?
-
最好不要使用key来保存信息。使用元组作为@piotrwest 的建议或创建一个额外的类来包装你的
MetaInfoValueGroupTags和List<object>。
标签: c# dictionary