Linq 查询包含 where 条件中的 int 列表方法



我不明白这种语法有什么问题。

tags="abc,xyz,asdf"
List<string> ta= tags.Split(',').ToList<string>();
List<string> demo = from T in db.tokens where ta.Contains(T.tname) select T.Id;

我有带有标签及其 ID 的表格。我需要从表中获取标签的 ID...谢谢

编辑::我已将其更改为类似的东西。以及它的工作和另一个问题

List<int> demo = from T in db.tokens where ta.Contains(T.tname) select T.Id).ToList();
var slist = from I in db.institutes
                    from T in db.inst_to_token
                    where I.CountryId == cont
                       && demo.Contains(T.tokenid)
            select I;

但是上面显示了在 where 条件下的此错误

System.collection.generic.List.Contains(int) 的最佳重载方法匹配有一些无效参数

由于 T.tokenid 是一个int?,你需要选择inst_to_token其中 tokenid 不为 null 并将T.tokenid.Value传递给demo.Contains方法

var slist = from I in db.institutes
                from T in db.inst_to_token
                where I.CountryId == cont
                   && T.tokenid.HasValue
                   && demo.Contains(T.tokenid.Value)
        select I;

最新更新