C#:什么是正确的数据结构? (锯齿状物体“数组”)

时间:2012-08-18 04:59:06

标签: c# data-structures jagged-arrays

我有List个名为IWord的{​​{1}}个对象。 我需要将每个元素与其自己的taggedInputList对象相关联。 为此,我需要使用不同的数据类型。

在此数据类型中,父列表和子列表都必须是动态的,并且必须在运行时填充。

父列表必须允许重复值(因此它不能是IWord对象)。

我打算遍历父列表,并操纵(添加,删除,重新组织)子列表中的元素。父列表和子列表中的每个元素都必须可以通过列表中的位置访问。

这是我为更好地说明我需要的图片而写的:

enter image description here

用于此目的的最佳数据类型是什么?我需要像Dictionary这样的东西 (但这不是一个清单)

1 个答案:

答案 0 :(得分:1)

我假设您无法更改IWord界面?在这种情况下,我会使用另一种类型来形成所需的关系......

public class WordWithRelatives
{
   public IWord Word {get;set;}
   public List<IWord> Relatives {get;set;}
}

然后你只需要一个上面的列表

var taggedInput = List<WordWithRelatives>();

您还可以通过将WordWithRelatives接口方法转发到其包含的IWord实例来使IWord实现Word