【问题标题】:Linq GroupJoin with a Func<Inner,Outer,bool>?Linq GroupJoin with a Func<Inner,Outer,bool>?
【发布时间】:2010-10-13 13:17:41
【问题描述】:

我有 IEnumerable&lt;A&gt;IEnumerable&lt;B&gt; 我想根据A.Test(B) 是否返回true 进行群组加入。

keyselector 函数似乎没有这样做,因为 KeySelector 需要返回相同类型的键,以便检查它们是否相等。

这里有什么我遗漏的吗?

【问题讨论】:

    标签: c# linq join .net-4.0


    【解决方案1】:

    你说得对,GroupJoin 无法真正处理这种情况。 这种解决方法可以吗?

    var res = from aInstance in aSequence 
              select new {
                           A = aInstance,
                           MatchingBs = bSequence.Where(bInstance => aInstance.Test(bInstance))
                         };
    

    【讨论】:

    • 是的,它会的。出于所有实际目的,它会做。通常我不会再看这个。读完“真实世界的函数式编程”后,我有点警惕。当谓词和结果选择器混合在一起时,该死的书不会让我放心。我不敢相信我实际上是在 C# 中可视化一个 currying func (predicate->resultselector) 只是为了抚摸我新发现的功能敏感性。不过,不认真。如果有的话,自然是我自己的 GroupJoin 过载。感谢您的回复。
    猜你喜欢
    • 2018-01-27
    • 2022-09-28
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    • 2017-06-01
    • 2016-04-28
    相关资源
    最近更新 更多