簡體   English   中英

傳遞清單 <string> 進入Linq

[英]Passing a list<string> into Linq

第一個查詢返回一個字符串列表,我將它們傳遞到另一個表中以查找相應的項目,但沒有任何反應。 沒有錯誤信息或沒有

var classIds = _contextSpecRepo.Get(x => x.cId.Equals(cId)).Select(x => x.classNames).Distinct().ToList();
// issue happens in the following query
var classes= Repository.Get(x => x.Id.Equals(classIds)).ToList();

要調用Equals ,這需要object ,隱藏的問題:你是比較單一的Id ,以列表Id S,而不是檢查,如果Id存在於收藏。 這編譯,但沒有結果。

以下是如何解決它:

var classes= Repository.Get(x => classIds.Any(y => y == x.Id)).ToList();

要么

var classes= Repository.Get(x => classIds.Contains(x.Id)).ToList();

如果你必須在2個查詢中執行它,那么你必須使用contains

var classes= Repository.Get(x => classIds.Contains(x.Id)).ToList();

更好的解決方案是在表上使用連接。

你也可以跳過.ToList()

var classes= Repository.Get(x => classIds.Contains(x.Id));

暫無
暫無

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

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