【发布时间】:2023-01-06 22:37:27
【问题描述】:
我这里有一行代码是使用 MoreLinq 编写的:
var maxPage = _pageState?.Value?.Pages?.MaxBy(p => p.Type.Grids["desktop"].ColCount)?.FirstOrDefault();
因为我的解决方案同时使用了 MoreLinq 和 Linq,所以出现以下错误:
以下方法或属性之间的调用不明确:“MoreLinq.MoreEnumerable.DistinctBy<TSource, TKey>(System.Collections.Generic.IEnumerable, System.Func<TSource, TKey>)”和“System.Linq.Enumerable.DistinctBy” <TSource, TKey>(System.Collections.Generic.IEnumerable, System.Func<TSource, TKey>)
我尝试将以下静态扩展添加到我的文档中:
MoreLinq.Extensions.AppendExtension但这会在行尾出现FirstOrDefault()并出现以下错误:“MyClass”不包含“FirstOrDefault”的定义,并且找不到接受“MyClass”类型的第一个参数的可访问扩展方法“FirstOrDefault”(您是否缺少 using 指令或程序集引用?)
我也尝试过删除 MoreLinq,但我得到的结果是不包含 FirstOrDefault 错误的定义。
解决此问题的最佳方法是什么?
【问题讨论】:
-
您是否仍然需要在同一个源文件中为
MoreLinq使用using指令,或者那是该文件中唯一使用 MoreLinq 的地方吗?我不明白您在文档中添加静态扩展名是什么意思 - 什么文档?你是说源文件吗?这与第一个错误有关还是单独的?目前你的问题还不清楚。 -
@JonSkeet 它在文件中唯一使用 MoreLinq
-
所以摆脱
using MoreLinq;应该没问题。它只会使用Enumerable.MaxBy。 -
@JonSkeet 我最终得到了上面提到的关于 firstordefault 的第二个错误
-
请重写你的问题,因为它是非常目前还不清楚你是如何解决第二个问题的,以及你试图解决第二个问题的意思。 minimal reproducible example 会让一切都更清楚。