LINQ语句的Where子句用于查找List <string>集合中的字符串实例?

Dar*_*ent 1 c# linq linq-to-objects

我正在尝试为Linq语句构造一个Where子句,该子句需要确定集合中是否存在如下检索的AccountNumberList<string>.

我到目前为止试过这个:

private void FindAccountNumbers(List<string> AccountNumbers)
{
    var query = from abc 
    select new
    {
        AccountNumber = abc.AccountNumber
    };

    query = query.Where(AccountNumbers.Contains(x => x.AccountNumber));
}
Run Code Online (Sandbox Code Playgroud)

但是我收到以下构建错误:

无法从用法中推断出方法'System.Linq.Queryable.Where(System.Linq.IQueryable,System.Linq.Expressions.Expression>)'的类型参数.尝试显式指定类型参数.

在运行时,query包含AccountNumber值,我试图根据AccountNumbers集合中找到的匹配(类似于TSQL中的IN语句)来减少它.我应该使用Intersect而不是Contains?我究竟做错了什么??

Dan*_*rth 8

我想你想要这个:

query = query.Where(x => AccountNumbers.Contains(x.AccountNumber));
Run Code Online (Sandbox Code Playgroud)