我试图从.csv文件建立层次结构,它由ID(功能位置)的,说明&父ID(SupFunctLoc)这些都是字符串。我已将数据提取到列表中。 代码&数据参考样本。递归亲子关系C#
Functional Loc. Description SupFunctLoc.
70003 ABC AS002
70C2 ABC 70003
70C2.01 ABC 70C2
70C2.01.02 ABC 70C2.01
70C2.01.02.10 ABC 70C2.01.02
70C2.01.02.10-BG010 ABC 70C2.01.02.10
示例代码:
static void Main(string[] args)
{
List<Input> inputList = new List<Input>();
var yourData = File.ReadAllLines(locate)
.Skip(1)
.Select(x => x.Split(','))
.Select(x => new Input()
{
FunctionalLocation = x[0],
Description = x[1],
SuppFunctionalLocation = x[2],
});
//try 3
//try 2
var outputList = yourData
.Where(i => i.SuppFunctionalLocation!= null) // Just get the parents
.Select(i => new Input()
{
Description = i.Description,
SuppFunctionalLocation = i.SuppFunctionalLocation,
Children = inputList
.Where(x => x.FunctionalLocation.ToString() == i.SuppFunctionalLocation.ToString())
.Select(x => new Input()
{
Description = x.Description,
SuppFunctionalLocation = x.SuppFunctionalLocation,
FunctionalLocation = x.FunctionalLocation,
}).ToList()
}).ToList();
foreach (var output in outputList)
{
Console.WriteLine(output.Description);
output.Children.ForEach(c => Console.WriteLine($"\t {c.Description}"));
}
}
类认定中输入
class Input
{
public string FunctionalLocation { get; set; }
public string Description { get; set; }
public string SuppFunctionalLocation { get; set; }
public List<Input> Children { get; set; }
}
请帮什么可以在这种情况下进行。感谢您的帮助。
你正在分裂一个''',但你的示例文本没有逗号。另外,你需要为'Input'提供类def。 – Enigmativity
@Enigmativity你好我已粘贴的数据的样品,并用输入级认定中 – user5928466
更新问题'功能Loc.'是主键? – nozzleman