使用自定义排序器对对象进行排序不起作用

迈尔达·加法里(Mehrdad Ghaffari)

我有这个自定义分类器:

 public class AlphaNumericSorter : IComparer<string>
    {
        public int Compare(string x, string y)
        {
            return SafeNativeMethods.StrCmpLogicalW(x, y);
        }
    }

    [SuppressUnmanagedCodeSecurity]
    internal static class SafeNativeMethods
    {
        [DllImport("shlwapi.dll", CharSet = CharSet.Unicode)]
        public static extern int StrCmpLogicalW(string psz1, string psz2);
    }

我想对所有对象进行排序,但它只对我的列之一进行排序,因此我必须传递我的列。我需要根据以下类型对列表进行排序jointnumber

List<ViewTestPackageHistorySheet> testList = _reportTestPackageHistorySheetRepository.ShowReport(Id).ToList();

        testList.Sort(new AlphaNumericSorter());

我收到此错误:

'System.Collections.Generic.IComparer<ViewDomainClass.Report.TestPackage.ViewTestPackageHistorySheet>'

但这有效:

  List<string> testList = _reportTestPackageHistorySheetRepository.ShowReport(Id).Select(i=>i.JointNumber).ToList();
        testList.Sort(new AlphaNumericSorter());
杰罗恩·范·朗根(Jeroen van Langen)

您可能想要实现的类似于: IComparer<ViewTestPackageHistorySheet>

您想比较ViewTestPackageHistorySheet而不是string

就像是:

public class AlphaNumericSorter : IComparer<ViewTestPackageHistorySheet>
{
    public int Compare(ViewTestPackageHistorySheet x, ViewTestPackageHistorySheet y)
    {
        return SafeNativeMethods.StrCmpLogicalW(x.JointNumber, y.JointNumber);
    }
}

[SuppressUnmanagedCodeSecurity]
internal static class SafeNativeMethods
{
    [DllImport("shlwapi.dll", CharSet = CharSet.Unicode)]
    public static extern int StrCmpLogicalW(string psz1, string psz2);
}

像这样使用它:

var result = _reportTestPackageHistorySheetRepository.ShowReport(Id).ToList();

result.Sort(new AlphaNumericSorter());

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用自定义排序顺序对对象的ArrayList进行排序

根据对象JAVA 11中的值的自定义优先级对对象列表进行排序

按对象值对对象数组排序不起作用

对自定义对象的向量进行排序

Javascript自定义按年份使用“前一年”对对象数组进行排序

如何使用Java 8中的自定义Comparator接口对对象数组进行排序?

按存档文件中页面属性对自定义帖子类型进行排序不起作用

使用const成员对自定义对象的向量进行排序

按自定义顺序对对象数组进行排序

使用自定义HeaderView时,列排序不起作用

自定义排序数组以基于字符串对对象进行排序-Javascript

如何使用Swift Codable根据特定的排序顺序对自定义对象进行排序

如何使用自定义管道在Angular中按属性值对对象数组进行排序?

如何在自定义排序功能中对对象的特定属性实施排序?

Python自定义函数,用于对对象列表进行排序

使用三个级别的自定义排序标准对对象数组进行排序

使用Appcompat进行自定义不起作用

使用自定义比较器对ArrayList <String>进行排序

如何使用自定义排序顺序在angular js中对对象进行排序?

自定义排序功能不起作用

自定义分类排序顺序不起作用

在selectCheckboxMenu中对自定义对象使用转换器不起作用

uasort性能差,按自定义顺序对对象数组进行排序

按属性对对象列表进行排序 C#(自定义排序顺序)

NSDate 的自定义类排序属性在 Objective-C 中不起作用

在java中使用比较器逻辑对对象进行排序

Ransack 自定义排序不起作用

按不起作用的键对对象数组进行排序

使用重新排序对 ggplot 列进行排序不起作用