2013-07-05 2 views
0

안녕하세요, 조건이 다른 개체와 일치하는 경우 업데이트 된 개체를 반환 할 개체 목록이 있습니다. 아래 코드 은 내가 시도한 코드입니다. 작동하지 않습니다. 업데이트로 찾은 일치 항목을 반환합니다. 키 값과 일치하지 않는 값을 업데이트하지 않고 목록에서 원한다. 이 작업을 수행 할 수 있습니까?개체 목록에서 업데이트 된 개체 값을 반환하십시오.

var bindingData = dataSource.Where(x => filesFoundDictionary.Any(y => y.Key == x.FileName)).Select(x => { x.Select = true; return x; }).ToList(); 

답변

2

당신은 Where를 사용하는 대신 Select 문 내에서 조건을 넣어 안 :이 사람이 나를 위해 일

var bindingData = dataSource 
    .Select(x => 
    { 
     if(filesFoundDictionary.ContainsKey(s.FileName)) 
      x.Select = true; 
     return x; 
    }).ToList(); 
+0

많이 sir.Thanks. :) –

+2

'filesFoundDictionary.Any (y => y.Key == x.FileName)'를'filesFoundDictionary.ContainsKey (s.FileName) '로 대체하는 것이 더 효율적이기 때문에이를 대체 할 수 있습니다. 첫 번째 방법은 O (n)이고 사전 방법은 항상 O (1)입니다. –

+0

@TimSchmelter 당신은 완전히 맞습니다! 내 대답이 업데이트되었습니다. 감사! – MarcinJuraszek