我一直試圖做這從幾天,但我可以做的是排序完整列表,但無法從特定索引進行排序。排序列表<byte[]>從特定列表索引直到列表的末尾在c#
可以說我有例如
List<byte[]> byteArrayList = new list<byte[]>();
byteArrayList.Add(new byte[]{1, 2, 3, 5, 9, 6, 7, 6, 45, 50, 39 });
byteArrayList.Add(new byte[]{0, 1, 0, 1, 0, 1, 0, 1, 99, 99, 99, 99, 99, 99});
byteArrayList.Add(new byte[]{2, 2, 2, 2, 3, 3, 3, 3 });
byteArrayList.Add(new byte[]{0, 0, 0, 0, 0, 0, 0, 0, 31, 21 });
byteArrayList.Add(new byte[]{1, 22, 32, 22, 3, 3, 3, 3, 12, 13, 14, 15 });
byteArrayList.Add(new byte[]{0, 0, 0, 0, 0, 0, 0, 0, 95, 85, 75});
下面的列表中,並讓說,當前的列表索引
ListPoisition = 2;
因此清單應當由ListPoisition == 2進行排序,直到的結束名單。
結果列表看起來應該像:
byteArrayList = { {1, 2, 3, 5, 9, 6, 7, 6, 45, 50, 39 },
{0, 1, 0, 1, 0, 1, 0, 1, 99, 99, 99, 99, 99, 99 },
{0, 0, 0, 0, 0, 0, 0, 0, 31, 21 },
{0, 0, 0, 0, 0, 0, 0, 0, 95, 85, 75},
{1, 22, 32, 22, 3, 3, 3, 3, 12, 13, 14, 15 },
{2, 2, 2, 2, 3, 3, 3, 3 }
};
這只是一個example.But實際列表可以包含的byte []的N多。這裏
var start = 2;
foreach (var entry in byteArrayList)
{
entry.PartialSort(start, entry.Length - 1);
}
工作demo:
你可以利用LINQ:'List.Take(2).Concat(名單。跳過(2).OrderBy(...))'。你需要傳遞一個自定義的'Comparer'到'OrderBy'來按照你想要的方式比較兩個列表。 –
如果你有什麼東西可以工作,即使它不完美,發佈它也不會有什麼傷害。 –
你用什麼代碼進行排序?沒有這些信息,這不是一個好問題。 – Phil1970