欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

把jQuery的each(callback)方法移植到c#中

程序员文章站 2023-03-13 16:24:13
$("img").each(function(i){  this.src = "test" + i + ...

$("img").each(function(i){ 
this.src = "test" + i + ".jpg"; 
});  


就可以给给所有图像设置src属性。

c#中虽然有for(;;)和foreach(..in )可以完成此功能,

        static void main(string[] args) 
        { 
            string[] arr = new string[] { "a", "b", "c", "d", "e" }; 
            foreach (string item in arr) 
            { 
                console.writeline(item); 
            } 
            console.readkey(); 
        } 


但和jquery的each(callback)比起来还显得复杂了点。

现在使用c#3.0的扩展方法功能来将each(callback)移植到c#中来。然后我们就可以用这段代码替换上面的了。


        static void main(string[] args) 
        { 
            string[] arr = new string[] { "a", "b", "c", "d", "e" }; 
            arr.each(p => console.writeline(p)); 
            console.readkey(); 
        } 



比foreach简便多了吧,实现代码就几行。

    public delegate void eachdelegate<t>(t arg); 
    public static class ienumerableextension 
    { 
        public static void each<t>(this ienumerable<t> src, eachdelegate<t> callback) 
        { 
            foreach (t item in src) 
            { 
                callback(item); 
            } 
        } 
    }