linq表达式中的内联lambda?

时间:2013-08-05 14:25:40

标签: c# linq

我需要帮助在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来形成返回集时使用内联函数。

1 个答案:

答案 0 :(得分:3)

对于匿名的在线转换,请尝试以下方法:

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