2013-08-12 4 views
2
public class Employee 
    { 
     public string Name{get;set;} 
     public List<Department> Department { get; set; } 
     public string Company{get;set;} 
    } 

    public class Department 
    { 
     public string Name { get; set; } 
     public string Location { get; set; } 
    } 

    List<Employee> employees = new List<Employee>(); 
     employees.Add(new Employee() { Company = "Dell", Name = "ABC" }); 
     employees.Add(new Employee() { Company = "Dell", Name = "Aakash" }); 
     employees.Add(new Employee() { Company = "CSC", Name = "Vaibhav" }); 
     employees.Add(new Employee() { Company = "TCS", Name = "Sambhav" }); 

     employees[0].Department = new List<Department>(); 
     employees[0].Department.Add(new Department() { Location = "Delhi", Name = "HR" }); 
     employees[0].Department.Add(new Department() { Location = "Delhi", Name = "Recruitment" }); 

     employees[1].Department = new List<Department>(); 
     employees[1].Department.Add(new Department() { Location = "Noida", Name = "EAO" }); 
     employees[1].Department.Add(new Department() { Location = "Delhi", Name = "Arch" }); 

     employees[2].Department = new List<Department>(); 
     employees[2].Department.Add(new Department() { Location = "Denmark", Name = "Scandi" }); 
     employees[2].Department.Add(new Department() { Location = "Noida", Name = "SAG" }); 

     employees[3].Department = new List<Department>(); 
     employees[3].Department.Add(new Department() { Location = "Mumbai", Name = "NSE" }); 

Мне нужно написать лямбда-выражения для выбора всех сотрудников, где Departement Место это НойдыLINQ для списка списка

ответ

7

Использование Any метод расширения:

var results = employees.Where(e => e.Department.Any(d => d.Location == "Noida")) 
         .ToList(); 
+0

Не уверен, что 'ToList()' необходимо, но +1. – Jodrell

+0

Как найти уникальные значения Deptartment Name. –

+0

У вас есть еще вопросы? Задайте другой вопрос. – MarcinJuraszek

1

На самом деле вы даже не для этого нужен LINQ. List<T> имеет методы FindAll и Exsists, которые могут сделать работу:

employees.FindAll(e => e.Department.Exists(d => d.Location == "Noida")) 
Смежные вопросы