我存储在强项目类型IDictionary<TKey, TValue>
的字符串表示这样的数值也表示关键:如何提取密钥对象
public class MyObject
{
public string Name { get; private set; }
public SectionId Section { get; private set; }
public MyObject(SectionId section, string name)
{
Section = section;
Name = name;
}
public override bool Equals(object obj)
{
if (ReferenceEquals(null, obj)) return false;
if (ReferenceEquals(this, obj)) return true;
if (obj.GetType() != typeof(MyObject)) return false;
return Equals((MyObject)obj);
}
public override int GetHashCode()
{
unchecked
{
return (Name.ToLower().GetHashCode() * 397)^Section.GetHashCode();
}
}
}
在我的表现层,我需要通过这本词典迭代,将每个项目添加到ListBox控件。我很难搞清楚如何将MyObject(也作为关键字)转换为ListBox控件可以用作值的字符串。我是不是应该做出MyObject.GetHashCode(显式调用)是这样的:
MyListBox.Add(new ListItem(myObject.Name, myObject.GetHashCode())
给定的MyObject与NAME =“富”和第=(有些部分ID,可以说这是一个数值3),你希望看到显示在列表框中什么? –
gethashcode方法返回一个int。它在表示层中没有意义 – Baz1nga
如果你的值对象也是关键字,是否有一个特定的原因,你必须使用IDictionary而不是说IEnumerable? – EtherDragon