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

时间:2011-08-11 12:14:41

标签: linq arraylist

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

vat tmp= users.select(a=> a.UserID in (arraylist));

我该怎么办?

3 个答案:

答案 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());
            }
        }
    }