我在 sql server 2008 数据库/表中有一个整数列(非空),我想检索它。
// go to the table and get the largest number, if none exists, use 0.
int iNumber = iContext.DetailsRecords.Max(x => x.Number); // from entity
但一开始, table 是空的。我想设置为0。 如何更改代码?
最佳答案
如果您不想检查 DetailsRecords 是否为空,而是处理源序列是否为空,则使用此答案(我针对您的 LINQ 用法对其进行了一些不同的调整):
int iNumber = iContext.DetailsRecords.Select(x => (int?)x.Number).Max() ?? 0;
-
Enumerable.Max Method (IEnumerable<Int32>)
: InvalidOperationException - 源不包含任何元素。 -
Enumerable.Max Method (IEnumerable<Nullable<Int32>>)
:如果源序列为空或仅包含空值,则此函数返回空值。
关于c# - 通过 linq 比较无值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13349551/