繁体   English   中英

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

[英]C#: What is the proper data structure? (jagged object “array”)

我有一个名为taggedInputIWord对象的List 我需要将每个元素与其自己的IWord对象List相关联。 为此,我需要使用其他数据类型。

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

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

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

这是我制作的图像,目的是更好地说明我的需求:

在此处输入图片说明

最佳的数据类型是什么? 我需要类似List<IWord,List<IWord>> (但是那不是列表)

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

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

然后,您只需要上面的列表

var taggedInput = List<WordWithRelatives>();

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM