我有以下代码
[Microsoft.VisualStudio.TestTools.UnitTesting.TestMethod]
public void TestEnumOfMaybe()
{
List<Maybe<int>> l = new List<Maybe<int>>();
l.Add(1.ToMaybe());
l.Add(Maybe.None<int>());
l.Add(3.ToMaybe());
var y = from x in l
from y in x
select y;
}
我的 Maybe 类型接受所有 Select 和 SelectMany 方法以使其与 Linq 兼容,我有测试来证明这一点。但是,我似乎无法像上面的测试用例那样找到一种方法来进行交叉类型的 LINQ 组合。我得到的错误是
expression of type 'FunctionalExtensions.Maybe<int>' is not allowed in
a subsequent from clause in a query expression with source type
'System.Collections.Generic.List<FunctionalExtensions.Maybe<int>>'.
Type inference failed in the call to 'SelectMany'.
FunctionalExtensions*
有没有办法将这两种 LINQ 类型结合起来,还是我在这里不走运?完整的 Maybe.cs 实现位于