怎么得到最大的数字?

Jay*_*Jay 0 .net c# linq

我试图使用以下代码从我的数据库中的字段获取最大数字:

var bb=(from c in Office_TBLs select c.CodeNumber).Max();
Run Code Online (Sandbox Code Playgroud)

当我运行查询时,我收到结果"999",这是错误的,因为数据库中的最大数字是1601.数据库字段中的数据类型是Nvarchar吗?

我怎样才能修复我的代码以获得正确的最大数量.

Ale*_*kov 12

"999" > "1601" 作为字符串比较 - 所以要获得结果,您需要将字符串值转换为数字.

最简单的方法是使用.Select(s => int.Parse(s)).Max())(或.Max(s => int.Parse(s)))而不是.Max()使用常规字符串比较.

请注意,根据数据的来源,可能有更好的方法来获取整数结果(包括更改数据库中的字段类型)..Select在查询上使用很可能强制查询从DB返回所有行,而不是在内存中计算Max.