我需要帮助在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来形成返回集时使用内联函数。
答案 0 :(得分:3)
对于匿名的在线转换,请尝试以下方法:
Array result = someList.Select(t => new SelectListItem
{
Text = t.Text,
Value = t =>
{
/* some transformation logic */
}
}).ToArray();