linq中的简单选择查询

时间:2012-10-12 12:54:37

标签: c# sql .net linq contains

假设我有一张学生桌,我想要显示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中实现这一目标?

3 个答案:

答案 0 :(得分:20)

使用.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 :(得分:4)

尝试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();

答案 2 :(得分:2)

也可以尝试:

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>();