在linq表达式中内联lambda

本文关键字:lambda linq 表达式 | 更新日期: 2023-09-27 18:26:32

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

在linq表达式中内联lambda

对于匿名的内联转换,请尝试以下操作:

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