我有一个包含一些UserID的数组列表。 我需要这样的查询:
vat tmp= users.select(a=> a.UserID in (arraylist));
我该怎么办?
答案 0 :(得分: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));
虽然在普通Contains
上使用ArrayList
可能编译,但我认为它会在执行时失败,假设users
是{{1} }}
答案 1 :(得分:5)
List<long> list =new List<long>();
var selected = from n in users where list.Contains(n.ID) select n ;
OR
var selected = users.Where(a=> list.Contains(a.ID)).ToList();
答案 2 :(得分:0)
这是我使用的解决方案。
public static IEnumerable<SettingModel> GetSettingBySettingKeys(params string[] settingKey)
{
using (var db = new BoxCoreModelEntities())
{
foreach (var key in settingKey)
{
var key1 = key;
yield return Map(db.Settings.Where(s => s.SettingKey == key1).First());
}
}
}