簡體   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