如何创建自定义列表c#

时间:2012-12-05 09:54:17

标签: c# list

我正在尝试创建一个包含两个值的自定义列表。

例如我有一个枚举:

public enum Type
{
   name,
   number,
   surname
}

所以我想要做的就是有一个列表,它将保存上面的枚举,类型和值。

例如:

List<Type type, object value>

请协助我如何完成此事。

3 个答案:

答案 0 :(得分:4)

有很多方法可以给这只猫上皮。

一个不错的选择,如果您只需要在单个方法中使用此列表,则使用List<Tuple<Type,object>>。请参阅MSDN上的Tuple

如果您确实需要跨方法/类共享列表,我建议使用自定义类型来保存这两个值:

public class MyValues
{
  public Type TheType { get; set; }
  public object TheObject { get; set; }
}

并将其与List<MyValues>一起使用。

注意:您使用object作为通用类型是代码气味。它打败了使用泛型的原因。

答案 1 :(得分:2)

您可以创建一个包含通用KeyValuePair或Tuple的通用列表:

List<KeyValuePair<Type, object>> myList = new List<KeyValuePair<Type, object>>();

List<Tuple<Type, object>> myList = new List<Tuple<Type, object>>();

这可能是解决您问题的简单方法。

答案 2 :(得分:0)

如果Type在集合中是唯一的,您可以使用Dictionary:

 Dictionary<Type,object>

如果Type不是唯一的,你可以使用元组:

 List<Tuple<Type,object>>

或者您可以创建自己的类,并为您的类提供类型列表,如@oded建议:

 List<MyValues>