我想将特定数字移动到此列表的顶部。将列表元素会议条件移动到列表顶部
int numberToBeMovedOnTop = 4;
List<int> lst = new List<int>(){1, 2, 3, 4, 5, 5, 4, 7, 9, 4, 2, 1};
List<int> lstOdd = lst.FindAll(l => l == numberToBeMovedOnTop);
lstOdd.AddRange(lst.FindAll(l => l != numberToBeMovedOnTop));
其中numberToBeMovedOnTop
是一个变量。
这给了我想要的结果,但是这是一个更好的解决方案吗?我可以迭代列表一次,并将第一个元素numberToBeMovedOnTop
和第二个元素numberToBeMovedOnTop
第二次发生交换,依此类推。但是,这可以用一些内置的C#函数来完成,而不需要两次迭代列表?
检查这个问题了,包含了不同的方法负载这样做http://stackoverflow.com/questions/1668451/use-linq-to-move-item-to-top-of-list –