ID(機能場所)、説明&親ID(SupFunctLoc)のすべてが文字列である.csvファイルから階層を構築しようとしています。私はリストにデータを取り込んだ。 コード&参照用データサンプル。再帰親子関係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}"));
}
}
クラスDefination入力
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
'Functional Loc.'は主キーですか? – nozzleman