C#:正确的数据结构是什么?(锯齿状对象“数组”)
我有一个名为C#:正确的数据结构是什么?(锯齿状对象“数组”),c#,data-structures,jagged-arrays,C#,Data Structures,Jagged Arrays,我有一个名为taggedInput的IWord对象的列表。 我需要将每个元素与它自己的列表的IWord对象相关联。 为此,我需要使用不同的数据类型 在此数据类型中,父列表和子列表都必须是动态的,并且必须在运行时填充 父列表必须允许重复值(因此它不能是字典对象) 我打算遍历父列表,并操作(添加、删除、重新组织)子列表中的元素。父列表和子列表中的每个元素都必须可以通过其在列表中的位置进行访问 以下是我为更好地说明我需要什么而制作的图像: 用于此目的的最佳数据类型是什么?我需要一些类似于List (
taggedInput
的IWord
对象的列表。
我需要将每个元素与它自己的列表
的IWord
对象相关联。
为此,我需要使用不同的数据类型
在此数据类型中,父列表和子列表都必须是动态的,并且必须在运行时填充
父列表必须允许重复值(因此它不能是字典
对象)
我打算遍历父列表,并操作(添加、删除、重新组织)子列表中的元素。父列表和子列表中的每个元素都必须可以通过其在列表中的位置进行访问
以下是我为更好地说明我需要什么而制作的图像:
用于此目的的最佳数据类型是什么?我需要一些类似于List
(但那不是一个列表)我假设您不能更改IWord
接口?在这种情况下,我会使用另一种类型,让你形成所需的关系
public class WordWithRelatives
{
public IWord Word {get;set;}
public List<IWord> Relatives {get;set;}
}
public类WordWithRelatives
{
公共IWord字{get;set;}
公共列表相关项{get;set;}
}
然后你只需要上面的列表
var taggedInput = List<WordWithRelatives>();
var taggedInput=List();
您还可以通过将IWord
接口方法转发到它包含的Word
实例,使WordWithRelatives
实现IWord
。尝试一个元组,它只是一个具有两个属性T1和T2的数据结构。这些都是.NET4内置的,但必须在任何地方手动创建below@PostMan啊,好的,很好,这看起来是一个解决方案。这就是你的意思,对吗?新列表()@Nunesspascal只是因为它是2d。我只是说列表本身不能令人满意,列表不是一个有效的结构。创建一个名为class WordList:List{…}
的自定义类,并在其中添加一个名为List Children{get;private set;}
的属性,然后创建一个WordList-List