2010-08-02 8 views
0

나는 이것이 사소한 질문이라고 확신하지만 나는 좋은 예를 찾을 수 없었다. 리스트의 모든 오브젝트에 대해 하나의 속성을 변경하기 만하면됩니다. 다음과 같이 말하고 싶습니다.간단한 변환 Linq 함께

List<SomeType> list = ...; 

list.Select(x => x { x.Name = "Foo" }); 

"new"키워드가 없음을 확인하십시오. 이미 존재하는 객체를 다시 만들고 싶지는 않습니다. 목록의 모든 요소에 한 줄의 코드 (이 경우에는 간단한 할당)를 실행하면됩니다.

우아한 방법으로 linq에서 가능합니까?

미리 감사드립니다.

+0

List<T>.ForEach()을보십시오. 그것을 남용하지 마십시오. –

+0

@Doc Brown : Linq는 쿼리를위한 것이 아닙니다! –

+0

@Christopher Edwards : LINQ라는 약자가 무엇인지 알 것입니다. 그리고 확신하지 못한다면, 소비재가 게시 한 에릭 리 퍼트 (Eric Lippert)의 기사 링크를보십시오. –

답변

2

매우 쉽습니다. MSDN ForEach 실제로는 List 클래스의 메서드이지만 람다 식을 사용할 수 있습니다.

list.Foreach(x => x.Name = "Foo" ); 
+0

확실히 확장 프로그램이 아닙니다. T의 목록의 그냥 표준 방법 – spender

1

컬렉션을 변경하려는 경우 실제로 Linq에 속하지 않습니다. 이유를 보려면 Eric Lippert's post을 참조하십시오. 제안 된 솔루션을 작업이, Linq에이 쿼리를위한 것입니다 있지만

+0

왜 downvote? – spender