我有一个包含所有州名的字符串列表。我需要移动几个州(前纽约、加利福尼亚等)才能出现在列表顶部。如何使用 LINQ 做到这一点?仅供参考:该列表已按字母顺序排序。
它只是一个简单的列表,很少有重要的状态需要位于顶部。没有标准。
以下是使用字母而不是状态的概念证明。
var all = new List<string>() {"a","b","c","d","e"};
var top = new List<string>() {"c","d"};
var finalList = top.Concat(all.Except(top));
这个想法是您拥有完整的状态列表 ( all
) 以及您想要在顶部 ('top') 的列表。然后,您获取顶部的那些并连接您使用该Except
方法创建的剩余列表。
List<string> importantStates = {...};//It's up to you
var list = states.OrderBy(x=>!importantStates.Contains(x));