Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LINQ,Lambda,C#,扩展方法_C#_Linq_Lambda_Extension Methods - Fatal编程技术网

LINQ,Lambda,C#,扩展方法

LINQ,Lambda,C#,扩展方法,c#,linq,lambda,extension-methods,C#,Linq,Lambda,Extension Methods,几天来,我第一次使用LINQtoSQL和lambda表达式,我想做以下工作 我有一个字符串扩展方法,它返回一个double。扩展方法测试两个字符串并返回相似性分数。 我有一个使用linq to sql的表中列的字符串值列表,我想使用扩展方法作为一种方式,仅过滤出那些相似性分数等于或大于输入字符串的字符串 到目前为止,我已经得到了下面的答案。我似乎无法测试返回的double的值 List<int> ids = dc.ErrorIndexTolerances

几天来,我第一次使用LINQtoSQL和lambda表达式,我想做以下工作

我有一个字符串扩展方法,它返回一个double。扩展方法测试两个字符串并返回相似性分数。 我有一个使用linq to sql的表中列的字符串值列表,我想使用扩展方法作为一种方式,仅过滤出那些相似性分数等于或大于输入字符串的字符串

到目前为止,我已经得到了下面的答案。我似乎无法测试返回的double的值

List<int> ids = dc.ErrorIndexTolerances
                  .Where(n => n.Token.Distance(s) => .85)
                  .Select(n => n.ID)
                  .ToList();
List id=dc.errorIndexTolerance
.其中(n=>n.Token.Distance=>0.85)
.选择(n=>n.ID)
.ToList();
距离方法是返回双精度的扩展方法。Token和s都是字符串。ID是表中的整数ID字段

有人有什么建议吗?

较大或相等运算符是
=
,而不是
=>

List<int> ids =
  dc.ErrorIndexTolerances.Where(n => n.Token.Distance(s) >= .85)
  .Select(n => n.ID).ToList();
列表ID=
dc.ErrorIndexTolerance.Where(n=>n.Token.Distance>0.85)
.Select(n=>n.ID).ToList();

也许这应该是

n.Token.Distance(s) >= .85) 
只是一个打字错误:-)

有人有什么建议吗

我有个建议。。。切勿使用“大于”,仅使用“小于”

。其中(n=>.85
.Where(n => .85 <= n.Token.Distance(s))
.Where(acct => acct.CreateTime <= now
  && acct.StartTime <= order.OrderDate
  && order.FulfilledDate <= acct.EndTime)