2010-06-04 4 views
2

LINQ에 대한 지식이 제한되어 있으므로이 작업을 단순화하는 방법을 묻습니다. 목록에서 고객을 선택하고 결과에 대해 조치를 취하는 구문을 작성하려고합니다. .FindAll() 결과에 대한 작업 수행 방법

내가 가진 말 :

public List<Customer> Customers 

Customers.FindAll(delegate(Customer c) { return c.Category == "A"; }); 

가 지금은 카테고리 == "A"가 그 모든 고객을 자신의 c.Names를 인쇄하거나 c.Value이 = "높음"으로 설정하고 싶은 말은.

다른 목록에 결과를 배치하고 각 결과를 반복하지 않아도이를 빠르게 수행 할 수 있습니까?

답변

4

Linq에 Where 대신 FindAll 사용 : 이후

foreach (var c in Customers.Where(c => c.Category == "A")) 
{ 
    Console.WriteLine(c.Name); 
    c.Value = "High"; 
} 

이 방법이 더 효율적되어야한다, 새 목록을 만들 필요는 없습니다.

3

이 작업을 수행 할 수 있습니다

Customers.FindAll(delegate(Customer c) { return c.Category == "A"; }) 
    .ForEach(c => Console.WriteLine(c.Name)); 
2

당신은이 작업을 수행 할 수 있습니다

public List<Customer> Customers 

Customers.FindAll(delegate(Customer c) { return c.Category == "A"; }).ForEach(c => Console.WriteLine(c.Names)); 
관련 문제