C# 如何在返回的Linq查询结果中获取最大的数字?

C# 如何在返回的Linq查询结果中获取最大的数字?,c#,linq,C#,Linq,我的数据库中有一个名为Picture的表。我使用该表的主键作为图片的文件名 创建新图片时,我需要它遵循逻辑顺序。为此,我使用主键 如何获取此表的主键的最大值 图片表有以下列:ID、IDProject外键。我只需要获取最高的ID号。您需要使用该方法,该方法在一系列值中返回最大值。例如,查找最高图片ID: int pictureId = pictures.Max(p => p.ID); 另外,请参见MSDN上的“查找数字序列中的最大值”。您需要使用该方法,该方法返回值序列中的最大值。例如,查

我的数据库中有一个名为Picture的表。我使用该表的主键作为图片的文件名

创建新图片时,我需要它遵循逻辑顺序。为此,我使用主键

如何获取此表的主键的最大值

图片表有以下列:ID、IDProject外键。我只需要获取最高的ID号。

您需要使用该方法,该方法在一系列值中返回最大值。例如,查找最高图片ID:

int pictureId = pictures.Max(p => p.ID);
另外,请参见MSDN上的“查找数字序列中的最大值”。

您需要使用该方法,该方法返回值序列中的最大值。例如,查找最高图片ID:

int pictureId = pictures.Max(p => p.ID);

另外,请参见MSDN上的“查找数字序列中的最大值”。

我想以下两种方法中的任何一种都可以:

source.Max(e => e.ID)
或:


我想以下两种方法中的任何一种都应该有效:

source.Max(e => e.ID)
或:

您要使用:

您要使用:


尝试使用扩展方法IEnumerable.Max

因此,在您的情况下,它将是这样的:

pictureList.Max( p => p.ID);

尝试使用扩展方法IEnumerable.Max

因此,在您的情况下,它将是这样的:

pictureList.Max( p => p.ID);

使用第二个而不是第一个的目的是什么?可能是数据库会更好地优化它,这实际上取决于数据源。使用第二个而不是第一个的目的是什么?可能是数据库会更好地优化它,这实际上取决于数据源。不确定为什么会被否决;到目前为止,这是唯一一个能够正确解释不存在任何记录的边界情况的答案,当转换为SQL时,它可能会生成一个好的查询。ORDER DESC对于主键来说应该是非常有效的,就像TOP一样。@Dan Bryant,我完全同意。不知道为什么这被否决了;到目前为止,这是唯一一个能够正确解释不存在任何记录的边界情况的答案,当转换为SQL时,它可能会生成一个好的查询。ORDER DESC对于主键来说应该是非常有效的,就像TOP一样。@Dan Bryant,我完全同意。
var record = myDataSet.OrderByDescending(o => o.ID).FirstOrDefault();