2013-08-05 52 views
-3

我需要帮助在LINQ表达式中创建内联/多行lambda。linq表达式中的内联lambda?

List<myObject> someList = domainModel.someMethod(); 

Array result = (from r in someList 
       select new SelectListItem 
       { 
        Text = r.Text, 
        Value = r.Value.Select(r2=> { /* <<< Not sure how to "call it" */ 
         string outputValue = ""; 

         /* ** How do I pass in (access) this row inside here? 
           For example.... ** */ 
         outputValue = myMethod(r.Text, r.Value); 
         /* ** Can use this records values like this? */ 

         //Do a bunch of data massaging... 
         return outputValue; //Return modified string 
        }).ToString() 
       }).ToArray(); 

我知道我可以创建一个私有方法并调用代替,但这更多信息之目的 - 如何使用LINQ to塑造一个回归集时使用的内联函数。

+3

请说明您的具体问题或添加额外的细节,突显正是你需要的。正如它目前所写,很难确切地说出你在问什么。 – DGibbs

+0

我认为你的意思不可能 – Jonesopolis

+0

我试图创建一个内联lambda表达式,它在呈现最终输出(数组)之前修改该值。 – Losbear

回答

3

对于匿名在线改造,试试这个:

Array result = someList.Select(t => new SelectListItem 
       { 
        Text = t.Text, 
        Value = t => 
        { 
         /* some transformation logic */ 
        } 
       }).ToArray(); 
+0

谢谢Yuck。我感谢帮助! – Losbear