2017-08-29 2 views
-3

での句は、私がこれを持ってどこに含まれてい?は、LINQ

+3

なぜクエリが機能していないのですか? – Magnus

+1

'visitCounter'は' sequence'である必要があります。この '(x => visitCounter.Cotains(x.Index))'のようなことができます。 –

+2

'x.Index'のタイプは? –

答えて

0

あなたはこのようContainsを使用することができます。

int[] VisitorIds = new int[] {1,2,3}; //an array to check with 

    .Where(x => vivitorIds.Contains(x.Index)).ToList(); 
3

あなたはContains方法が何を誤解しているようです。 visitCounterが整数(及びそのIndexがある)である、言い換えれば

Where(x => x.Index == visitCounter - 1) 

:私はあなたの以前の使用にこの答えを基づかよ。しかし、あなたはこれを次のように使いたいと思っています:

Where(x => x.Index.Contains(visitCounter)) 

構文上の意味はありません。整数(Index)にはContainsの機能はありません。

しかし、私はSQLサーバーのIN節のようなものを実現したいと思っています。しかし、私はあなたが達成しようとしていることを完全に明確ではありません。 SQLで

IN句は、可能性の範囲(あなたの場合は整数のリストを、)必要とし、あなたはここで整数のリストで作業していません。さらに、Indexが整数のリストであると予想していることを意味するIndex.Contains(visitCounter)と書いてありますか?

これは単純に意味がありません。

List<int> visitorIds = new List<int>() { 1, 5, 99, 125 }; 

をそして、あなたは、次の操作を行うことができます:だから私はあなたの擬似コードで正確ではありませんでした前提に、あなたの最も理にかなって答えを与えるでしょう

.Where(x => visitorIds.Contains(x.Index)) 

へ言葉で言えば、このスニペットは基本的に "IndexvisitorIdsリストに記載されているアイテムのみを与える"ようにコンピューターに指示します。