我有一個值列表,用於對另一列值進行排序,但我一直遇到的問題是如果我刪除了要排序的值中的兩個值,那麼需要排序的值列表中的兩個值就會丟失這兩個值,因爲它在有序值列表中找不到。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