-1

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

4

1 回答 1

4

对于匿名在线转换,试试这个:

Array result = someList.Select(t => new SelectListItem
               {
                   Text = t.Text,
                   Value = t =>
                   {
                       /* some transformation logic */
                   }
               }).ToArray();
于 2013-08-05T14:30:35.343 回答