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

时间:2014-02-23 11:02:19

标签: c# string linq list split

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

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 ... 谢谢

EDIT :: 我把它改成了这样的东西。它的工作和另一个问题

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;

但是上面的条件

显示了这个错误
  

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

1 个答案:

答案 0 :(得分:2)

由于T.tokenidint?,您需要选择inst_to_token其中tokenid不为空,并将T.tokenid.Value传递给demo.Contains方法< / p>

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;