繁体   English   中英

LINQ,Lambda,C#,扩展方法

[英]LINQ, Lambda, C#, extension methods

我几天来第一次玩linq到sql和lambda表达式,我想做以下几点。

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

到目前为止我已经得到了以下内容。 我似乎无法测试返回的double的值。

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

距离方法是返回double的扩展方法。 Token和s都是字符串。 ID是表中的整数ID字段。

有人有任何提示吗?

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

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

也许这应该是

n.Token.Distance(s) >= .85) 

只是一个错字:-)

有人有任何提示吗?

我有一个提示......从不使用“大于”,只使用“小于”。

.Where(n => .85 <= n.Token.Distance(s))

我遵循这个规则主要是因为日期逻辑。 比较5组日期时,最好不要错误地阅读标志。 小的一个在左边,大一个在右边,100%的时间。

.Where(acct => acct.CreateTime <= now
  && acct.StartTime <= order.OrderDate
  && order.FulfilledDate <= acct.EndTime)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM