2015-01-20 4 views
1

나는 간단한 모델을 가지고있다.목록 <T>는

내 목록은 여자의 수천, 그래서 다른 방법으로 그것을 할 수 있다면 나는 다음과 같은 일을 피하고, 궁금하지 오전 :

foreach(var item in girls) 
{ 
    item.Hot = True; 
} 
+14

* 왜 * 당신이를 피하려고합니까? 그것은 나에게 가장 직접적인 접근 방법 인 것 같습니다. (분명히 나는 ​​다소 객관적인 예를 선택했을 것이다. 개인적으로 ...) –

+0

각 항목을 바꿀 필요를 피할 방법이 없다. 코드에서, 이것은 어느쪽으로 든 공식화 될 수 있지만, 합리적인 공식은 다른 것들보다 실질적인 향상을 가져 오지 못할 것입니다. – Codor

답변

1

ToList()에 의해 평가 select 문을 사용하여 시도 할 수 :

girls.ForEach(girl => girl.Hot = true); 

MSDN을하는 방법에는 here 찾을 수 있습니다 . 당신이 "다른 방법"이동 여기

+0

ForEach는 확장 메서드가 아닙니다. 'List '의 일반적인 방법입니다. –

+0

나는 고쳐졌다. – IronMan84

+0

사실 그것은 단계적으로 제거되고 있습니다 :) – Botonomous

4

아니 당신은 할 수 있습니다. 반복하고 속성을 설정해야합니다. 가치

girls.ForEach(g=>g.Hot = true); 

모음집에 걸쳐 반복을 피하지 않는 것을 언급처럼 보일 수 있습니다 코드 (우리가 섹시한 여자에 대해 얘기하는 것을 고려)을 찾고 더 섹시, 단지 구문이 변경되었습니다.

희망이 도움이됩니다.

0

당신은 당신은 List<T> 대신에 ForEach 방법을 사용할 수 있습니다 인해 게으른 평가

girls.Select(g => {g.Hot = True; return g;}).ToList(); 
+4

@Codor : 글쎄, 그렇게하는 것은 실제로 비효율적 인 방법입니다. 그러나 기존 목록에 의해 참조 된 모든 객체를 수정합니다. –

0

:

for(int i = 0; i < girls.Count; i++) 
{ 
    girls[i].Hot = True; 
} 

또는

int i = 0; 
while(i < girls.Count) 
{ 
    girls[i].Hot = True; 
    i++; 
}