【发布时间】:2014-06-18 15:35:02
【问题描述】:
当使用 lambda 表达式从以下代码中查找最大 Key 值时,在 Unix 系统上使用 gmcs 进行编译时出现以下编译错误:
List<KeyValuePair<int, RunnerBase>> lsFinishOrder = new List<KeyValuePair<int, RunnerBase>>();
...fill out List...
iMaxPlace = lsFinishOrder.Max(p => p.Key);
代码在 Windows 机器上编译良好,并且在执行时按预期执行该问题仅在我尝试在 Linux 上编译时出现。
错误 CS0121:以下方法之间的调用不明确或 特性: `System.Linq.Enumerable.Max
>(System.Collections.Generic.IEnumerable >, System.Func , long >)' 和 `System.Linq.Enumerable.Max
>(System.Collections.Generic.IEnumerable >, System.Func , int >)' /usr/lib/mono/gac/System.Core/3.5.0.0__b77a5c561934e089/System.Core.dll (与先前错误相关的符号位置)
欢迎任何想法,因为我尝试了很多不同的方法,我想知道我是否没有找错地方。我的目标是 .Net 3.5 在我的 Windows 版本上。
【问题讨论】:
-
我清理了错误消息以使其更具可读性,并在 long 和 int 周围插入了 ** 似乎造成歧义。