我有这个:
var myResult = uow.GetRepository<SLItemsCustomersCard, long>()
.Query(x => x.CustomerId == customerId && x.SquareColor == squareColor)
.OrderBy(x => x.BranchMapRang)
.Select((r, i) => new { Row = r, Index = i })
.Where(x => x.Index == visitCounter - 1).ToList();
但我想在where子句中实现这一点:
.Where(x => x.Index.Cotains(visitCounter)).ToList();
怎么做?
答案 0 :(得分:3)
您似乎误解了Contains
方法的作用。我的答案基于你之前的用法:
Where(x => x.Index == visitCounter - 1)
换句话说,visitCounter
是一个整数(因此Index
)。但是你想要像这样使用它:
Where(x => x.Index.Contains(visitCounter))
这不具有句法意义。整数(Index
)没有Contains
函数。我并不完全清楚你想要达到的目标,但你的评论澄清了一点:
但我想在SQL server中实现类似IN子句的东西。
SQL中的IN
子句需要一系列可能性(在您的情况下为整数列表),并且您不在此处使用整数列表。此外,您已将其称为Index.Contains(visitCounter)
,这意味着您希望Index
成为整数列表?
这根本没有意义。因此,假设您对伪代码不准确,我会给出最有意义的答案:
List<int> visitorIds = new List<int>() { 1, 5, 99, 125 };
然后您可以执行以下操作:
.Where(x => visitorIds.Contains(x.Index))
用文字表示,此代码段基本上告诉计算机“只提供Index
列表中提到visitorIds
的项目。”
答案 1 :(得分:0)
您可以像这样使用Contains
:
int[] VisitorIds = new int[] {1,2,3}; //an array to check with
.Where(x => vivitorIds.Contains(x.Index)).ToList();