gpt4 book ai didi

带有字节数组的 c# 排序列表不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 19:09:36 25 4
gpt4 key购买 nike

我创建了一个这样的列表:

private List<byte[]> shaList = new List<byte[]>();

并用数百万个 sha 填充它。之后我想这样排序:

shaList.Sort();

但是它抛出一个异常:

Unbehandelte Ausnahme: System.InvalidOperationException: Fehler beim Vergleichen
von zwei Elementen im Array. ---> System.ArgumentException: Mindestens ein
Objekt muss IComparable implementieren.
bei System.Collections.Comparer.Compare(Object a, Object b)
bei System.Collections.Generic.ObjectComparer`1.Compare(T x, T y)
bei System.Collections.Generic.ArraySortHelper`1.SwapIfGreaterWithItems(T[]
keys, IComparer`1 comparer, Int32 a, Int32 b)
bei System.Collections.Generic.ArraySortHelper`1.QuickSort(T[] keys, Int32
left, Int32 right, IComparer`1 comparer)
bei System.Collections.Generic.ArraySortHelper`1.Sort(T[] keys, Int32 index,
Int32 length, IComparer`1 comparer)
--- Ende der internen Ausnahmestapelüberwachung ---
bei System.Collections.Generic.ArraySortHelper`1.Sort(T[] keys, Int32 index,
Int32 length, IComparer`1 comparer)
bei System.Array.Sort[T](T[] array, Int32 index, Int32 length, IComparer`1
comparer)
bei System.Collections.Generic.List`1.Sort(Int32 index, Int32 count, I
Comparer`1 comparer)
bei System.Collections.Generic.List`1.Sort()

我不知道如何自行排序。我在学校只学过冒泡排序和插入排序,但用冒泡排序对数百万个哈希进行排序……xD

//3vilc00kie

最佳答案

您可以实现自定义比较器:

class ByteArrayComparer : IComparer<byte[]> {
public int Compare(byte[] x, byte[] y) {
// implement your comparison criteria here
}
}

然后像这样对你的列表进行排序:

List<byte[]> shaList = new List<byte[]>();
shaList.Sort(new ByteArrayComparer());

此处定义了您的比较函数应返回的内容:http://msdn.microsoft.com/en-us/library/xh5ks3b3(v=vs.110).aspx

基本上,你必须返回:

  • < 0 如果 x < y
  • 0 如果 x == y
  • > 0 如果 x > y

关于带有字节数组的 c# 排序列表不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21909313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com