第一回接触Linq,求大神指点指点

第一次接触Linq,求大神指点指点。

            string Sqlw = " 1==1 ";
            if (typeid > 0)
                Sqlw = "&& result => result.Field<int>(\"typeid\")==" + typeid;
            if (quest != "")
            {
                //这一段是我自作主张改的一个非空查询或者模糊查询的方法,
                //quest是一个传参。如果为"name"或者"name|"就代表我这个name字段不能为空
                //如果quest传过来为"name|123"就代表我要根据"123"来对name字段做模糊查询。
                string[] arr = quest.Split('|');
                if (arr.Length > 2)
                {
                    if (arr[1] != "")
                    {
                        Sqlw = "&& result => result." + arr[0] + ".Contains('" + arr[1] + "')";
                    }
                    else
                        Sqlw = "&& result =>  result.Field<string>(\"" + arr[0] + "\")!= \"\"";
                }
                else
                    Sqlw = "&& result =>  result.Field<string>(\"" + arr[0] + "\")!= \"\"";
            }            

            var x = from result in dt.AsEnumerable() where Sqlw  select result;


现在我已经错得很离谱的就是from result in dt.AsEnumerable() where Sqlw  select result这一段的Sqlw  根本不是这么拼的,
但是我Linq基础基本为0,完全不知道这样的问题该怎么解决。还有我这样Linq的写法有错误吗?

也不要跟我说什么不懂就先去看基础资料,我要不是赶时间,我真的就抱着书从头啃了。
------解决方案--------------------
你把linq的lambda表达式跟本身的ef linq写法混淆了

1.
var q = from result in table where result.a == a select result

2.
var q = table.Where(e=>e.a == a).Select()

------解决方案--------------------
sqlw就是查询条件
------解决方案--------------------
我明白你的意思,你的需求,简单点可以通过拼接查询条件来实现:
http://blog.****.net/q107770540/article/details/5724013