订购具有唯一行的列表,其中给定行作为第一项,然后重新排序列表但没有第一行

时间:2015-04-10 13:29:24

标签: c# linq

假设我有一个列表(“德国”,“比利时”,“荷兰”,“西班牙”,“俄罗斯”,“意大利”)。

我想在列表顶部以“比利时”命名此列表。

因此,当我将此列表加载到ComboBox中时,“Belgium”是加载的selectedvalue。

现在如何订购列表的其余部分?

这就是我所拥有的:“比利时”排在最前面,但其余部分没有订购。

 return Enumerable.Select(GetTable()
            .OrderByDescending(o => o.Name == country)
            .ThenBy(o => o.Name != country), b =>
                new ComboBoxBase.ComboBoxListStructGuid { Id = b.CountryID, Description = b.Country }).ToList();

2 个答案:

答案 0 :(得分:4)

var countries = new List<string>(){ "Germany", "Belgium", "Netherlands", "Spain", "Russia", "Italy" };
var result = countries
                .OrderByDescending (c => c == "Belgium")
                .ThenBy (c => c);

答案 1 :(得分:1)

return Enumerable.Select(GetTable()
            .OrderByDescending(o => o.Name == country)
            .ThenBy(o => o.Name), b =>
                new ComboBoxBase.ComboBoxListStructGuid { Id = b.CountryID, Description = b.Country }).ToList();