J'essaie de construire la hiérarchie à partir du fichier .csv, il se compose d'ID (emplacement fonctionnel), Description & Parent Id (SupFunctLoc) qui sont tous dans la chaîne. J'ai récupéré les données dans la liste. Code & Échantillon de données pour référence.Relation parent-enfant récursive 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
Exemple de code:
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}"));
}
}
Classe Defination pour l'entrée
class Input
{
public string FunctionalLocation { get; set; }
public string Description { get; set; }
public string SuppFunctionalLocation { get; set; }
public List<Input> Children { get; set; }
}
S'il vous plaît aider à ce qui peut être fait dans ce cas. Votre aide est appréciée.
Vous divisez un ',', mais votre exemple de texte n'a pas de virgules. De plus, vous devez fournir la classe def pour 'Input'. – Enigmativity
@Enigmativity bonjour J'ai collé un échantillon de données et mis à jour la question avec la définition d'entrée de classe – user5928466
'Local fonctionnel 'est la clé primaire? – nozzleman