gpt4 book ai didi

c# - 使用 EF 对数字和字母字符串进行排序

转载 作者:行者123 更新时间:2023-11-30 20:33:54 26 4
gpt4 key购买 nike

我的数据库中有一个字符串类型的列,其中包含这些值:

410
AFP-EXEC
412
411
AFP-EXEP

所以我想按照你看到的那样对它们进行排序:

_materialIssueVoucherRepository.Get().OrderBy(i=>int.Parse(i.Code)).ToList()

但它返回一个明显的错误将错误字符串转换为int,结果应该是这样的:

410
411
412
AFP-EXEC
AFP-EXEP

Alphabet 部分不重要,我可以在 EF 中这样做吗?

最佳答案

int temp;
_materialIssueVoucherRepository
.Get()
.OrderBy(i => int.TryParse(i.Code, out temp) ? temp : int.MaxValue)
.ToList()

听起来您想忽略字符串中的非数字字符,然后使用整数作为排序的一部分。你可以试试:

.OrderBy(i => int.Parse(new string(i.Where(char.IsDigit).ToArray()))

它只会从字符串中获取整数进行比较,尽管它不是很漂亮。

关于c# - 使用 EF 对数字和字母字符串进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39835564/

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