我有一个值列表,用于对另一列值进行排序,但我一直遇到的问题是如果我删除了要排序的值中的两个值,那么需要排序的值列表中的两个值就会丢失这两个值,因为它在有序值列表中找不到。C#按另一个列表排序并将未找到的列表添加到列表末尾
这是我尝试
尝试的例子1
universites = universites.OrderBy(d => listOrderedUniversites.IndexOf(d)).ToList();
的社区学院是一个列表,该orderedUniversity是模型的列表中,listOrderedUniversites是一个列表。
然而,这确实拉出了所有的值,但它并没有命令它们。
---更新---
这是我
universites = new List<SelectListItem>();
universites.Add(new SelectListItem()
{
Value = 1,
Test = "University 1"
});
universites.Add(new SelectListItem()
{
Value = 2,
Test = "University 2"
});
universites.Add(new SelectListItem()
{
Value = 3,
Test = "University 3"
});
ordering = new int[] {3, 1, 2};
所以我需要通过int数组为了我的清单;
您能提供样品清单和预期结果吗?你的问题目前有点不清楚,因为我看不出如何通过另一个列表排列一个列表,如果它们长度不一样,以及为什么一个列表中的项目也应该在另一个列表中。 – 2014-09-25 08:26:34
'd'是什么?它是一些“大学”类吗?如果是,你是否覆盖了这个类的'Equals'和'GetHashCode'? – 2014-09-25 08:27:47
@Matthew好吧,让我们说有序大学是{1,5,4,2,3},大学是{1,2,3,4,5,6,7}我想命令大学看起来像{1, 5,4,2,3,6,7},列表的长度可能不同的原因是我将它们从数据库中提取出来,并且只要添加了值,该表就可以增加,因此需要将新值添加到列表和有序列表中,否则它将永远不会显示 – Canvas 2014-09-25 08:31:40