我有一个字符串数组 “1,2,3”
我要写一个LINQ 
from p in 表
 where p.id 等于字符串中任何一个 
这个linq怎么写

解决方案 »

  1.   

    from p in 表
     where new int[]{1,2,3}.Contains(p.id)
    select p; 
      

  2.   

    http://blog.csdn.net/q107770540/article/details/5387946
      

  3.   

    你为什么非要用from,
    简写不行么? int[] arrays={1,2,3};
     var p=表.Where(a=>arrays.Contains(a.Id)).Tolist();
      

  4.   

    弱弱的问一下 这里的“表”表示什么? dataTable? 还是什么?
      

  5.   


    表 可以是很多类型 数组 list 
    linq对查询语句一般用var 隐式类型
      

  6.   

    LINQ不仅可以查数据库表,还可以查对象,实体,XML等等。。
      

  7.   

    谢谢楼上和楼上的楼上指点!linq好东西呀!
      

  8.   

    linq  确实很好用…………
      

  9.   

    var aa = "aaa";
    var bb = "456aaa789";var cc = 
     from a in aa
     from b in bb
     where a==b
     select a;
      

  10.   


    不要说成是表。它只需要是一个是实现了 IEnumerable 接口的对象,不是表。
      

  11.   


    基本上应该把针对 IQueryable<T>的与针对通用的IEnumerable<T>的分开来看。数据库驱动通常实现为Linq Provider,那个要沉重得多。很多时候更愿意使用原生数据库查询语言,例如sql等,而不是Linq。只是针对内存中的对象,才会大量使用Linq。
      

  12.   

    我这么写 报错啊 错误提示~~~
    LINQ to Entities 不识别方法“Boolean Contains[String](System.Collections.Generic.IEnumerable`1[System.String], System.String)”,因此该方法无法转换为存储表达式。
      

  13.   

    你们都是.net4.0吧  我这个是.net 3.5
      

  14.   

    非也非也,你是的LINQ2EF  不支持Contains写法
    先.ToList().转化成LINQ2Object再说:
    .Where()
    =====
    .ToList().Where()
      

  15.   

    不行 tolist了 数据量太大 绝对要在 tolist前作 子查询