C# 如何解决以下错误:无法从';int';至';System.Collections.Generic.IEnumerable<;int>;?

C# 如何解决以下错误:无法从';int';至';System.Collections.Generic.IEnumerable<;int>;?,c#,linq,asp.net-mvc-4,linq-to-objects,C#,Linq,Asp.net Mvc 4,Linq To Objects,我正在试验jstree,并使用mvc项目填充该树 到目前为止,它工作得很好,但现在我决定将一个属性从string转换为int 我这样做是因为im changing属性是一个ID属性,我想从我拥有的列表中获取最高的ID,并用一个来递增它 代码: 到目前为止,我的谷歌搜索结果给了我一些尝试,使用firstorDeafut,我发现应该将IEnumerable转换为int,但遗憾的是,这不起作用。我尝试过其他几种方案,但都没有效果 我可以诚实地说,我真的不明白这里的问题是什么,所以如果有人有一个答案,我

我正在试验jstree,并使用mvc项目填充该树

到目前为止,它工作得很好,但现在我决定将一个属性从string转换为int

我这样做是因为im changing属性是一个ID属性,我想从我拥有的列表中获取最高的ID,并用一个来递增它

代码:

到目前为止,我的谷歌搜索结果给了我一些尝试,使用firstorDeafut,我发现应该将IEnumerable转换为int,但遗憾的是,这不起作用。我尝试过其他几种方案,但都没有效果

我可以诚实地说,我真的不明白这里的问题是什么,所以如果有人有一个答案,我也会非常感谢你的解释


谢谢

您必须这样做才能获得最大id:

var NewId = Nodes.Max(x => x.Id) +1;
有关更多详细信息和了解,请参阅:

此声明(如果有效)

将返回一个
IEnumerable
,而不是一个
Int
。替换为:

Nodes.Select(x => x.Id).Max()
此外,您的字段
Id
将包含一个
,因此对其应用
Max
是错误的

您的代码应该是:

var NewId = Nodes.Select(x => x.Id).Max() + 1;

非常感谢!我还在学习linq,所以尝试和错误已经开始了。真遗憾,我花了2个小时的研究,终于发布了。@Ra3IDeN,不客气:)。别担心,这种事在我们大多数人身上都发生过。
var NewId = Nodes.Max(x => x.Id) +1;
Nodes.Select(x => x.Id.Max())
Nodes.Select(x => x.Id).Max()
var NewId = Nodes.Select(x => x.Id).Max() + 1;