linq从数据库中选择一个ArrayList中的ID

Rez*_*eza 12 linq arraylist

我有一个包含一些UserID的数组列表.我需要这样的查询:

vat tmp= users.select(a=> a.UserID in (arraylist));
Run Code Online (Sandbox Code Playgroud)

我能做什么?

Jon*_*eet 21

如果它实际上在一个ArrayList,你应该首先创建一个List<T>或数组.然后你可以使用Contains:

// Use the appropriate type, of course.
var ids = arraylist.Cast<string>().ToList();
var tmp = users.Select(a => ids.Contains(a.UserID));
Run Code Online (Sandbox Code Playgroud)

虽然Contains在普通中使用ArrayList可能很好编译,但我认为它会在执行时失败,假设usersIQueryable<>.

  • 我用上面的Jon代码快速搜索了一个快速的示例,对我来说有一件有趣的事情是写的方式是var tmp的类型是IEnumerable <Boolean>,我认为是因为Contains.我不得不改变它以使用Where而不是Contains来获取ArrayList中包含的类型的List,如下所示:var tmp = users.Where(a => ids.Contains(a.UserID)); (2认同)

Rez*_*eza 5

List<long> list =new List<long>(); 
var selected = from n in users where list.Contains(n.ID) select n ;
Run Code Online (Sandbox Code Playgroud)