我有组(ObservableCollection 类型) 每组包含一个项目(集合类型)。
我有一个组集合(ObservableCollection 类型)每个组都有一个项目集合(ObservableCollection 类型) 每个项目都有自己的项目集合(ObservableCollection 类型)同样,每个项目都有一个项目集合,并以相同的方式继续嵌套。 我需要编辑所有可用项目(在所有集合中)的一些属性。 由于其嵌套和复杂的性质,我不能这样做,我只能一步完成
myGroup.Groups.SelectMany(g => g.Items).ToList().ForEach(item =>
{
item = FixItem(item);
});
foreach (var group in myGroup.Groups)
{
if (!Groups.Any(g => g.Title == group.Title))
{
Groups.Add(group);
}
}
如何编辑所有集合/子项/子集合中的所有项目并以更快的速度和性能执行此操作?
我找到了下面的解决方案,有没有可能比这段代码写得更好更快?
FixItemInGroups(myGroup.Groups);
foreach (var group in myGroup.Groups)
{
if (!Groups.Any(g => g.Title == group.Title))
{
Groups.Add(group);
}
}
private void FixItemInGroups(ObservableCollection<Group> groups)
{
foreach (var group in groups)
{
foreach (var item in group.Items)
{
FixItem(item);
FixItemInItems(item.Items);
}
FixItemInItems(group.Items);
}
}
private void FixItemInItems(ObservableCollection<Item> items)
{
foreach (var item in items)
{
FixItem(item);
FixItemInItems(item.Items);
}
}