linq中的简单选择查询

Bon*_*Kun 13 .net c# sql linq contains

假设我有一张学生桌,我想要显示ID为1的学生.

SELECT *
FROM STUDENT ST
WHERE ST.ID = 1
Run Code Online (Sandbox Code Playgroud)

这就是我在Linq中实现这一目标的方式.

StudentQuery = from r in oStudentDataTable.AsEnumerable()
                                     where (r.Field<int>("ID") == 1)
                                     select r;
            oStudentDataTable = StudentQuery.CopyToDataTable();
Run Code Online (Sandbox Code Playgroud)

但是如果我想用这些ID显示学生1,2,3,4,5怎么办?

SELECT *
FROM STUDENT ST
WHERE ST.ID IN (1,2,3,4,5)
Run Code Online (Sandbox Code Playgroud)

我怎样才能在Linq中实现这一目标?

Dar*_*ren 21

使用 .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();
Run Code Online (Sandbox Code Playgroud)

  • 如果列表变得更长,我更喜欢自己的`HashSet <int>`. (2认同)