List<string> list = new List<string>();
            list.Add("abc");
            list.Add("bcd");
            var querys = from lst in list
                        select lst;
            querys.ToList().ForEach(p=>Console.WriteLine(p));如上代码,从list中查询数据没问题。如果:
string condition="from lst in list select lst";
我想利用condition字符串来实现如代码中的查找数据,改如何做?

解决方案 »

  1.   

    querys.ToList().ForEach(p=>Console.WriteLine(p));
    lamada表达式应该这样写吧querys.ToList().ForEach((p)=>Console.WriteLine(p));
      

  2.   

    如何用C#动态编译、执行代码
    http://hi.baidu.com/wfsoft/blog/item/2c302823bc71934c925807e8.html
      

  3.   

    楼主是想要拆分句子,取出单词吗?
    string condition = "from lst in list select lst";
                condition.Split(new string[] {" "}, StringSplitOptions.RemoveEmptyEntries).ToList().ForEach(
                    p => Console.WriteLine(p));
      

  4.   

    使用表达式树。另外,将 Condition 定义为  Predicate<Entity> 类型。List<Entity> foo(Predicate<Entity> Condition)
    {
        return (from x in datasource select x).Where(x => Condition(x)).ToList();
    }
      

  5.   

    这说的不是处理类级别的代码么?
    我想要string condition = "from lst in list select lst";这个字符串执行的结果集,改如何做?
      

  6.   

    Condition是由条件拼接出来的一个字符串。动态生成的一个串。也就是说这个Condition是不确定的。
    如何执行Condition这个字符串的内容呢?
      

  7.   

    本帖最后由 caozhy 于 2011-06-02 18:10:31 编辑
      

  8.   

    要字符串string condition="from lst in list select lst"内容的执行结果。
    就是 var query=from lst in list select lst;想取得 query 。明白了吧?
      

  9.   

       string str1 = "X,P|黑色,红色|T,C";
                string[] strs = str1.Split('|');
                string sbuilder = string.Empty;
                for (int i = 0; i < strs.Length; i++)
                    sbuilder += "from s" + (i + 1) + " in strs[" + i + "].Split(',') ";
                    sbuilder += "select";
                for (int i = 0; i < strs.Length; i++)
                    sbuilder += " s" + (i + 1) + ",";
                    sbuilder= sbuilder.Substring(0, sbuilder.Length - 1);
                    sbuilder += ";";
                var query = sbuilder;
                Console.WriteLine(sbuilder);
                //想执行字符串sbuilder内容的查询结果....
      

  10.   

    http://topic.csdn.net/u/20110430/02/a3a306f8-2e21-4271-b3c5-35e2018933be.html没有开发环境,不给你写了。和这个思路类似。你需要在外面再包围一些代码,凑成一个类,然后调用编译器动态编译。
      

  11.   

    你的代码我没找到解决方法, 我推荐一个linq博客。
    顺便祝你升星。http://kb.cnblogs.com/zt/linq/
      

  12.   

    問一下querys.ToList().ForEach(p=>Console.WriteLine(p));
    这个参数只能是输出语句吗.
    如果我想用一个List添加数据
    能不能直接querys.ToList().ForEach(p=>List.add(p.字段))
      

  13.   

    ForEach 就相当于freach(var q in query){}
    C#中的foreach语句结构是用于只读而且顺序的遍历一个集合中的所有的元素
    退一万步讲,咱们假设你ADD成功了
    那LIST就新加一成员 那么foreach将再多加一次遍历  这时又新加了一条记录。。
    如此反复  死循环鸟~~~
      

  14.   

    能输出值啊,死循环有可能出现,就是内部改变了值的情况下,你内部没改变值,应该不会出现死循环吧。 如果你都写出那个字符串语句了,为何不直接写linq!所以,还是没必,直接写linq的了。