我有以下代碼:嵌套父子名單,其中爲了通過不起作用
public class Navigation
{
public Navigation()
{
SubNavigation = new List<Navigation>();
}
public int Order { get; set; }
public string Text { get; set; }
public string RouteName { get; set; }
public IList<Navigation> SubNavigation { get; set; }
}
那麼我:
IList<Navigation> list = new List<Navigation>();
我填充一些數據列表。並非所有項目都有子導航。目前導航只能進入一個級別。
現在我想按順序對每個項目的導航和子導航進行排序。我嘗試了各種方法,但無論我嘗試了什麼,我都無法在不重新創建對象的情況下讓子導航進行排序。下面的代碼工作:
IList<Navigation> result = list.OrderBy(l => l.Order)
.Select(n => new Navigation
{
Order = n.Order,
Text = n.Text,
RouteName = n.RouteName,
SubNavigation = n.SubNavigation.OrderBy(s => s.Order).ToList()
}).ToList();
我不是愛上了這個辦法,我的問題是,如果有這樣做使用LINQ和方法的語法的任何清潔劑/更好的辦法?
謝謝克里斯。我想我會朝着這個方向前進。 – Thomas
當然,如果你總是希望它只是有一個私人支持字段,而不是自動實現的get/set,並且有一個普通的setter和這個getter。 – Chris