我有以下简化类:
public class BaseContainer
{
public BaseContainer()
{
Children = new ObservableCollection<BaseContainer>();
}
public ObservableCollection<BaseContainer> Children { get; set; }
}
public class ItemA : BaseContainer
{
public ItemA()
{
base.Children.Add(new ItemB() { ItemBName = "bb" });
base.Children.Add(new ItemA() { ItemAName = "ab" });
base.Children.Add(new ItemB() { ItemBName = "ba" });
base.Children.Add(new ItemA() { ItemAName = "aa" });
}
public string ItemAName { get; set; }
}
public class ItemB : BaseContainer
{
public string ItemBName { get; set; }
}
我正在尝试根据两个条件对我的 ItemA.Children 集合进行排序:
- 所有项目 A 必须在集合中排在第一位
- 项目 A 应按 ItemAName 排序
- 项目 B 应按 ItemBName 排序
所以在排序之后我会期待这样的事情:
- ItemA - ItemAName = "aa"
- ItemA - ItemAName = "ab"
- ItemB - ItemBName = "ba"
- ItemB - ItemBName = "bb"
关于如何做到这一点的任何想法?
我能够按类类型名称排序:
List<BaseContainer> temp = base.Children.ToList();
temp.Sort((x, y) => string.Compare(x.GetType().Name, y.GetType().Name));
base.Children.Clear();
base.Children.AddRange(temp);
但是名称没有排序...
谢谢!