c# - 使用 LINQ 将字符串转换为 int 以进行排序

标签 c# .net linq lightspeed

我想通过转换为 int 的字符串对我的列表进行排序:

var orderedListOfRfidTags = uow.RfidTags.OrderBy(t => Convert.ToInt32(t.Number)).ToList();

但是得到:不支持方法'ToInt32'。

最佳答案

关于:

var orderedListOfRfidTags = uow.RfidTags.OrderBy(t => t.Number).ToList();

删除任何 CLR 方法,以便 ORM 可以将其转换为已知的 SQL 查询

编辑: 我刚读到想先转换它:

var orderedListOfRfidTags = uow.RfidTags.ToList().OrderBy(t => Convert.ToInt32(t.Number));

要么像我之前提到的那样从数据库中获取所有内容,然后在客户端(linq to object)对其进行排序,要么在您的 ORM 上找到一种方法来将其转换为 int 顺序。订购前 选择一个转换了数字的新列表,然后按它排序。

编辑2:

direct cast 是否与这个 ORM 一起工作?

var orderedListOfRfidTags = uow.RfidTags.OrderBy(t => (int)t.Number).ToList();

关于c# - 使用 LINQ 将字符串转换为 int 以进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5984919/

相关文章:

c# - 从 XSD 生成 SQL Server 数据库

c# - 使用 LINQ 获取项目列表,其中项目包含另一个列表中项目的一部分

c# - MongoDb 驱动程序 C# 查询优化

c# - 将 Expression<Func<TModel,Boolean?>> 转换为 Expression<Func<TModel,Boolean>>

c# - 在多个订阅者的情况下,委托(delegate)如何知道调用哪个函数

c# - ASP.NET表单触发AjaxFileUpload触发updatePanel问题

.net - .net 中 en-CA 的短日期格式

mysql - LINQ 生成错误查询,错误未知列 (VB.NET MySQL)

c# - SQL Server 中的数据类型二进制(1632)和 MYSQL 中的数据类型二进制(255)之间的区别?

c# - 如何在ASP.net网页的服务器端使用文本文件读写?