好吧,我有一个程序可以使用多个字符串源,并将它们存储在列表中。 我想在每个'。'修剪字符串。并存储在某处获得的句子。 然后从第一句开始,我想在每个空白处修剪它并将每个单词存储在某个地方。
我想稍后访问每个单词以组合单词,如果我可以像sources.source [2] .sentence [23] .level [2] .word [2]或类似的东西那样访问它们会很棒
我将制作这样的组合:Jon有蓝色药片。 (例如:这是source.source [2] .sentence [1])
Jon |有|蓝色|丸。 (1级)
约翰有|有蓝色|蓝色药丸。(level2)约翰有蓝色|有蓝色药丸。(level3)
约翰有蓝色药片。 (级别4)我尝试使用嵌套列表,但我不知道如何编辑子列表中的特定索引。
答案 0 :(得分:0)
我并不完全明白你正在尝试做什么,但这里有一个简单的启动器,让你了解如何使用列表构建树结构。
如果您定义一个Fragment来表示树中的一个节点,那么它需要包含一个字符串及其子节点列表:
class Fragment
{
string Content { get; set; }
List<Fragment> Children { get; set; }
}
要构建树,您可以使用root
创建root.Content = "John has blue pills"
片段。
然后(递归地)处理这个片段以细分它并创建它的孩子(例如两个片段包含内容&#34; John有&#34;和#34;蓝色药片&#34;)。您可以使用root.Children.Add()
将这两个片段添加为根的子级。然后(递归地)处理每个片段((&#34; John&#34;,&#34; has&#34;)和(&#34; blue,&#34; pills&#34;)),等等...
要提取数据,您必须使用类似root.Children[0].Children[1].Content
的表单来引用第三级的内容(在我的示例中,这将返回&#34;有&#34;)。
当然,如果您有固定结构(段落,句子,单词),那么您可以像这样表示三个级别(在伪代码中突出显示键结构):
class Paragraph { List<Sentence> Sentence; }
class Sentence { List<string> Word;
...在根级别,您的程序将保留List<Paragraph> Paragraph;
。
然后您的客户端代码将更具可读性:string word = Paragrah[2].Sentence[14].Word[5]
。