我一直试图做这从几天,但我可以做的是排序完整列表,但无法从特定索引进行排序。排序列表<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