Ответ 1
Используйте .Contains
var list = new List<int> { 1, 2, 3, 4, 5 };
var result = (from r in oStudentDataTable.AsEnumerable()
where (list.Contains(r.Field<int>("ID"))
select r).ToList();
Предположим, что у меня есть таблица учеников, и я хочу отобразить ученика с идентификатором 1.
SELECT *
FROM STUDENT ST
WHERE ST.ID = 1
Вот как я это достигаю в Linq.
StudentQuery = from r in oStudentDataTable.AsEnumerable()
where (r.Field<int>("ID") == 1)
select r;
oStudentDataTable = StudentQuery.CopyToDataTable();
но что, если я хочу отобразить студентов с этими идентификаторами 1,2,3,4,5..
SELECT *
FROM STUDENT ST
WHERE ST.ID IN (1,2,3,4,5)
Как я могу достичь этого в Linq?
Используйте .Contains
var list = new List<int> { 1, 2, 3, 4, 5 };
var result = (from r in oStudentDataTable.AsEnumerable()
where (list.Contains(r.Field<int>("ID"))
select r).ToList();
Попробуйте IEnumerable.Contains
:
var list = new List<int>(){1,2,3,4,5};
StudentQuery = from r in oStudentDataTable.AsEnumerable()
where (list.Contains(r.Field<int>("ID")))
select r;
oStudentDataTable = StudentQuery.CopyToDataTable();
Попробуйте также:
var list = new List<int> { 1, 2, 3, 4, 5 };
List<StudentQuery> result = (from r in oStudentDataTable.AsEnumerable()
where (list.Contains(r.Field<int>("ID"))
select new StudentQuery
{ /*
.Your entity here
.
*/
}).ToList<StudentQuery>();