我想创建一个包含对象的数组/集合。我希望能够使用键值访问数组/集合中的对象。我在想访问对象的语法是这样的:

ObjectArray[52].Color = "Blue"
ObjectArray[52].Height = 12.2

If(ObjectArray[52].Color == "Blue")
{
   // Code for Blue
}
If(ObjectArray[52].Height < 13.0)
{
   // Code for height less than 13.
}

class ObjectInArray
{
   public string Color;
   public double Height;
}


在这种情况下,“ 52”是键值,而不是数组中的位置。颜色和蓝色是对象中的属性。我不知道如何创建一个数组/集合来做到这一点(如果可以做到的话)。任何帮助或可选建议如何执行此操作将不胜感激。

最佳答案

您不需要数组,而是想要一种可以将一种类型的键与另一种类型的值关联的东西。 .Net中的此类集合称为Dictionary<TKey, TValue>,专门针对您的案例Dictionary<int, ObjectInArray>

例:

Dictionary<int, ObjectInArray> ObjectArray = new Dictionary<int, ObjectInArray>();
ObjectArray[52] = new ObjectInArray();

ObjectArray[52].Color = "Blue"
ObjectArray[52].Height = 12.2

if (ObjectArray[52].Color == "Blue")
{
   // Code for Blue
}

if (ObjectArray[52].Height < 13.0)
{
   // Code for height less than 13.
}

07-27 13:58