simple select query in linq
Lets say I have a student table and I want to display the student with ID 1.
SELECT * FROM STUDENT ST WHERE ST.ID = 1
This is how I achive this in Linq.
StudentQuery = from r in oStudentDataTable.AsEnumerable() where (r.Field<int>("ID") == 1) select r; oStudentDataTable = StudentQuery.CopyToDataTable();
but what if I want to display the students with these ids 1,2,3,4,5..
SELECT * FROM STUDENT ST WHERE ST.ID IN (1,2,3,4,5)
How can I achieve this in Linq?
Answers
Use .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();
Try 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();
Try this also :
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>();