使用 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 函数。
我有一个 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 函数。