2013-12-04 2 views
0

Можно ли вычислить «на лету» Division на основе Department и JobTitle с применением в конечном счете, некоторые преобразования, такие как конкатенация в прикованного Linq запроса ниже?Как рассчитать свойства в прикованного запроса Linq

public static List<Developer> GetDevelopersData(List<Employee> employees) 
    { 
     List<Developer> developers = 
     employees.Where(x => x.Department == "Dev") 
       .Select(x => new Developer 
        { 
         Name = x.Name, 
         Department = x.Department, 
         JobTitle = x.Function, 
         Division = "Department" + "/" + "Function" // based on previous properties 
        }).ToList(); 

     return developers; 
    } 

ответ

1

Я полагаю, что функция и департамент являются строковыми типами?

List<Developer> developers = 
    employees.Where(x => x.Department == "Dev") 
      .Select(x => new Developer 
      { 
       Name = x.Name, 
       Department = x.Department, 
       JobTitle = x.Function, 
       Division = String.Concat(x.Function, "/", x.Department) 
      }).ToList(); 

    return developers; 
0

Если я что-то отсутствует, вы можете сделать:

Division = string.Format("{0}/{1}", x.Department, x.Function) 

Предполагая, что вы просто хотите, два свойства объединяются в строку.

0

вычислять на лету, вы можете использовать пусть

(from x in employees 
let MyFunction=String.Concat(x.Function, "/", x.Department)//you can use whatever you want here 
select new Developer() 
{ 
     Name = x.Name, 
     Department = x.Department, 
     JobTitle = x.Function, 
     Division = x.MyFunction 
    }).ToList(); 
Смежные вопросы