gpt4 book ai didi

c# - 使用自定义对象创建嵌套的 ObservableCollection

转载 作者:太空宇宙 更新时间:2023-11-03 22:29:42 24 4
gpt4 key购买 nike

我正在尝试使用字符串数组创建树结构。我希望结构看起来像这样:

-UK
--Cars
---SUV
----Range Rover
---Saloon
----Jaguar

来自这些数组

string[] suv = new string[] {"UK","Cars","SUV","Range Rover"};
string[] saloon = new string[] {"UK","Cars","Saloon","Jaguar"};

我有一个用于树结构实现的 ViewModel:

public class TransportViewModel
{
public string Name { get; set; }
public ObservableCollection<TransportViewModel> TransportItems { get; set; }
}

我遇到的问题是我不知道如何在字符串数组中动态嵌套项目。我试图遍历数组元素并在那里做一些事情,但我不知道如何获取树结构。有人可以帮忙吗?

public static void CreateTree(string[] transportArray)
{
foreach(var item in transportArray)
{
// some TransportViewModel.Add implementation here??
}
}

最佳答案

您会在下面找到代码,希望对您有所帮助。

    public static void CreateTree(string[] transportArray)
{
var root = TransportViewModels;
foreach (var item in transportArray)
{
if (FindItem(item, root) == null)
{
root.Add(new TransportViewModel() { Name = item, TransportItems = new ObservableCollection<TransportViewModel>() });
root = root.LastOrDefault().TransportItems;
}
else
root = FindItem(item, root).TransportItems;
}
}

private static TransportViewModel FindItem(string item, ObservableCollection<TransportViewModel> root)
{
return root.Where(e => e.Name == item)
.FirstOrDefault();
}

关于c# - 使用自定义对象创建嵌套的 ObservableCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58578925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com