我有一个 List<int> allIDs
包含原始顺序的 ID 列表。我正在创建一个元素选择器,它允许用户从这个列表中添加和删除 ID 到另一个 List<int> selectedIDs
.现在,我已经准备好并开始工作了,但是每当用户删除并稍后添加相同的元素时,它只会添加到列表的末尾 ( selectedIDs.Add( id )
)。
我想将元素插入其原始位置,使用 allIDs
作为对过去位置的引用。
以下是列表的一些摘录,以将其全部放在上下文中:
List<int> allIDs = new List<int> {10, 11, 9, 155, 12, 299, 15...};
List<int> selectedIDs = new List<int> { 10, 9, 155, 299, 15... }
现在假设我从 selectedIDs
中删除了 id=299 -list,以便稍后尝试再次添加它。如何将其插入 155
之间和 15
?我知道我可以使用 list.Insert(obj, index)
插入列表中的任何位置方法,但我如何以最简单的方式以编程方式执行此操作?
最佳答案
如果我正确理解了您的要求:
var ordered = selectedIDs.OrderBy(sID => allIDs.IndexOf(sID));
这将按照原始完整列表中每个 ID 的索引对选定 ID 的列表进行排序。
关于c# - 与 C# 中的现有列表相比,如何对列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10230764/