2013-08-05 2 views
-3

Мне нужна помощь в создании встроенного/многострочного lambda в выражении LINQ.Inline lambda в выражении linq?

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, чтобы сформировать обратный набор.

+3

Просьба уточнить вашу конкретную проблему или добавить дополнительные детали, чтобы выделить именно то, что вам нужно. Как это написано в настоящее время, трудно точно сказать, что вы просите. – DGibbs

+0

Я думаю, вы имеете в виду невозможное – Jonesopolis

+0

Я пытаюсь создать встроенный лямбда-экспресс, который изменяет значение до того, как он отобразит окончательный вывод (массив). – Losbear

ответ

3

Для анонимного преобразования в линии, попробуйте следующее:

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

Спасибо Yuck. Я ценю помощь! – Losbear

Смежные вопросы