学生テーブルがあり、ID 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();
しかし、これらのIDが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>();