簡體   English   中英

如何從查詢中過濾出列表中存在的數據?

[英]How do you filter out data that exists in a list from a Query?

我目前正在嘗試通過兩個參數過濾SQL查詢,然后按日期字段對其進行排序。 最重要的是,每個條目都有一個唯一的ID。 我正在嘗試獲取最新的行,並且如果該行返回了不符合條件的匹配項,請重新查詢表中的下一項。 但是,我必須排除先前發現的結果,該結果只有該ID才知道是唯一的。

這就是我到目前為止所擁有的:

List<string> prevChecked = new List<string>;

do{

    var query = (from someRow in context.aTable
                 where someRow.Param1.Equals(param1Arg) &&
                 someRow.Param2.Equals(param2Arg)
                 // Trying to Exclude any Unique in results that have a 
                 // matching uniqueID inside of prevChecked
                 orderby someRow.RecentDate descending
                 select someRow).FirstOrDefault();

    // Use result of query, to get result of anotherQuery, 
    // if null append the query.UniqueID to prevChecked 

}while (anotherQuery != null)

我試過使用

!someRow.UniqueID.Contains(prevChecked) 

並在一個網頁上看到“例外”功能,盡管兩者都不起作用。

您可以向where子句添加條件,例如:

!prevChecked.Contains(someRow.UniqueID)

因此,您的查詢將是:

 var query = (from someRow in context.aTable
                 where someRow.Param1.Equals(param1Arg) &&
                 someRow.Param2.Equals(param2Arg) &&
                !prevChecked.Contains(someRow.UniqueID)
                 orderby someRow.RecentDate descending
                 select someRow).FirstorDefault();

您可能會看到: 使用LINQ創建IN查詢

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM