什么是LINQ相当于SQL

时间:2014-03-01 04:45:47

标签: c# linq

List<string> li = new List<string>();
        li.Add("10,11,12,1");
        li.Add("10,11,12,13");

        var q = from d in li
                where d.Contains("1")
                select d;

我有一个包含两个值的字符串列表。我有单值“1”,我想获取该字符串中包含值“1”的列表对象,即我想要列表中的第一个对象。如果我使用contains然后它将返回两个列表对象值,那么什么是查询,它给我完美的结果?

4 个答案:

答案 0 :(得分:5)

尝试更改

的位置
where d.Split(',').Contains("1")

这会将字符串拆分为项目列表,然后检查该项目是否在该列表中。

修改

如评论中所述,您不需要ToList(),因此请更改以上内容。

答案 1 :(得分:2)

如果要直接针对数据库运行此查询,则必须执行以下操作:

 var q = from d in li
            where d.StartsWith("1,") || d.EndsWith(",1") || d.Contains(",1,") 
             || d.Equals("1")
            select d;

否则另一个答案在内存中起作用

答案 2 :(得分:1)

你可以试试这个:

List<string> li = new List<string>();
li.Add("10,11,12,1");
li.Add("10,11,12,13");
string searchItem = "1";
var q = from d in li
        where ("," + d + ",").Contains("," + searchItem + ",")
        select d;

此查询也可以直接用于数据库。

答案 3 :(得分:0)

试试这个:

var q =
    from d in li
    where d.Split(',').Any(x => x == "1")
    select d;