gpt4 book ai didi

c# - 动态 Linq : How to specify the StringComparison type?

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

我正在根据从客户端浏览器发送的排序字段集合对数据集进行一些自定义筛选和排序,并且正在使用 Dynamic Linq 来实现(大部分)预期效果。我遇到问题的地方是当我尝试按字符串类型的列进行排序时,它包含传统字符串和存储为字符串的数字。我似乎无法传入 StringComparison 枚举值,或为 Dynamic Linq orderby 函数指定 IComparer 参数。

我的排序代码如下:

myList.AsQueryable().OrderBy("StringColWithNums ASC")

我最终得到:

1
10
100
11
12
2
20

代替:

1
2
10
11
12
20
100

有没有人有过类似的经历?

最佳答案

myList.AsQueryable().Sort((r, s) => int.Parse(r).CompareTo(int.Parse(s)));

如果这些是对象,将进行一些调整,只需使用 int.Parse(r.StringColWithNums),或任何字段。

糟糕,抱歉,没有阅读所有 OP 以看到它也有字母,您想要动态 linq,编辑

编辑

我不知道您能否使用 Dynamic linq 并传递 IComparer 来做到这一点。您可以在获得结果后执行此操作(即,正如我最初编写排序时所做的那样,并进行了修改)。如果您想继续这条线,请发表评论。

关于c# - 动态 Linq : How to specify the StringComparison type?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4369318/

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