使用 Lambda 表达式获取 2 个 c# 集之间的骰子系数

Get Dice Coefficient between 2 c# sets using Lambda expression

我有一个 class,它提供了一个 public 方法,它是当前集合和作为参数传递的集合之间的骰子集合操作。我阅读了很多关于 Lambda 的文章,想知道如何像下面那样做到这一点?

public float FindDice(Set<T> other) => 
    (((float) (2 * this.Intersect<T>(other).Count<T>())) / ((float) (this._count + other.Count)))

但是这在 c# 中不起作用任何人都可以用一些理论向我解释为什么吗?

C# 不同于 C++,作为一个工作示例,您可以这样做

Func<HashSet<int>, HashSet<int>, float> findDice = (HashSet<int> a, HashSet<int> b) => { return (float)(a.Intersect<int>(b).Count<int>() / (float)(a.Count + b.Count));  };

现在 findDice 是一个命名的 lambda 函数。