linq выбрать из базы данных, где идентификатор в ArrayList - PullRequest
12 голосов
/ 11 августа 2011

У меня есть список массивов, который содержит некоторый идентификатор пользователя. Мне нужен запрос как этот:

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

что я могу сделать?

Ответы [ 3 ]

21 голосов
/ 11 августа 2011

Если это на самом деле 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 вполне может скомпилировать , я ожидаю, что он потерпит неудачу во время выполнения, предполагая1011 * является IQueryable<>.

5 голосов
/ 25 июля 2012
List<long> list =new List<long>(); 
var selected = from n in users where list.Contains(n.ID) select n ;

ИЛИ

var selected = users.Where(a=> list.Contains(a.ID)).ToList();
0 голосов
/ 12 августа 2011

Это решение, которое я использовал.

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());
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...