哪位高人指点一下,C#中两个动态lambda 表达式有啥办法合并成一个? 谢谢!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哪位高人指点一下,C#中两个动态lambda 表达式有啥办法合并成一个? 谢谢!相关的知识,希望对你有一定的参考价值。

    class Program
    
        static void Main(string[] args)
        
            C[] cs = new C[]
            new C(11),new C(22),new C(33),
            new C(44),new C(55),new C(66);

            Expression<Func<C, bool>> e1 = x => x.N > 20;
            Expression<Func<C, bool>> e2 = x => x.N < 50;

            Expression<Func<C, bool>> e3 = e1.AndAlso(e2);

            var re = cs.Where(e3.Compile()).ToArray();

            foreach (C c in re)
                Console.WriteLine(c.N);
            //22 33 44
            Console.ReadLine();
        
    

    //元素类型定义
    class C
    
        public C(int n)  this.N = n; 
        public int N;
    

    //扩展方法
    public static class Ext
    
        public static Expression<Func<T, bool>> AndAlso<T>(
  this Expression<Func<T, bool>> a,
  Expression<Func<T, bool>> b)
        
            var p = Expression.Parameter(typeof(T), "x");
            var bd = Expression.AndAlso(
                    Expression.Invoke(a, p),
                    Expression.Invoke(b, p));
            var ld = Expression.Lambda<Func<T, bool>>(bd, p);
            return ld;
        
    

参考技术A 那两个呢??追问

两个都是动态的,是两个类型为Expression> 类型的变量,现在要让其合并成一个。AND 运算。

primeface中如何实现 fileupload功能,我这个怎么无效,请高人指点一下。

看primeface官方教程,做了以下内容,但后台的事件方法(handleFileUpload)没有执行。
一、web.xml
<!--文件上传-->
<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
<init-param>
<param-name>thresholdSize</param-name>
<param-value>1097152</param-value>
</init-param>
<init-param>
<param-name>uploadDirectory</param-name>
<param-value>/</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>faces servlet</servlet-name>
</filter-mapping>
<!--文件上传结束-->

二、fileupload.xhtml
<h:form enctype="multipart/form-data">
<p:fileUpload fileUploadListener="#fileManagedBean.handleFileUpload"
mode="advanced" update="filename" multiple="true" />
<h:outputText id="filename" value="#fileManagedBean.uploadedFile.fileName" />
<p:growl id="messages" showDetail="true"/>
</h:form>
三、FileManagedBean托管Bean
public void handleFileUpload(FileUploadEvent event)
System.out.println("Uploaded: " + event.getFile().getFileName());
System.out.println("handleFileUpload0=ok");
FacesMessage msg = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded.");
FacesContext.getCurrentInstance().addMessage(null, msg);

commons-fileupload-1.2.2.jar和commons-io-2.0.1.jar已加入项目库。
用netbeans7.2+glassfish3.1。前台fileUpload.xhtml没问题,只是后台没反应。

参考技术A 这个问题我也遇到了 ,赶紧努一把 参考技术B 上传文件,没有任何输出吗?无异常吗?追问

前台正常,但后台事件方法未能执行。无异常

无输出,也无异常

追答

我没用过你这个框架,这和

PrimeFaces FileUpload Filter
faces servlet

这个mapping中没有写 /xxx 是否有关系呢?

追问

你是指上传路径吧?其实官方文档说以下代码就是设置上传路径。

uploadDirectory
/

我将官方文档与自己代码看了几遍,自认没错误,其实运行中也确没有报异常,但怎么事件方法就是没执行呢???这让我摸不着头脑。

追答

用 /* 试试,还不工作的话,debug模式看看

追问

用 /*试过,依旧。debug模式也没发现问题

本回答被提问者采纳

以上是关于哪位高人指点一下,C#中两个动态lambda 表达式有啥办法合并成一个? 谢谢!的主要内容,如果未能解决你的问题,请参考以下文章

vb加载winio驱动失败 下面是代码 希望哪位高人指点一下

vc CListCtrl用FindItem函数 查找第n列中的值? 哪位高人能指点一下,我急用,谢谢!

服务器断电重启了,打开之后发现Oracle 数据库连接不上了,提示以下错误,哪位高人指点一下!!

紧急求救····哪位高人可指点MTK手机开机原理????

c# 动态创建带字符串拼接的lambda表达式?

请高人指点一下,java可以做邮箱么?