development

목록에서 여러 속성 설정

big-blog 2020. 8. 5. 07:27
반응형

목록에서 여러 속성 설정 각각()?


주어진 수업 :

class foo
{
    public string a = "";
    public int b = 0;
}

그런 다음 일반적인 목록 :

var list = new List<foo>(new []{new foo(), new foo()});

다음 방법 내에서 여러 속성 을 할당 해야하는 경우 아래 List<T> ForEach()에서 더 간단한 방법이 있습니까? 잘만되면 나는 조금 두껍게되고있다.

// one property - easy peasy
list.ForEach(lambda => lambda.a="hello!");
// multiple properties - hmm
list.ForEach(lambda => new Action(delegate() { lambda.a = "hello!"; lambda.b = 99;}).Invoke());

편집 : 생각 ForEach()은 실제로 List<T>oops 의 일부 일 때 LINQ 확장 방법이었습니다 !


익명 메소드가 여러 줄을 지원할 수 있도록 괄호를 추가하기 만하면됩니다.

list.ForEach(i => { i.a = "hello!"; i.b = 99; });

익명의 방법은 당신의 친구입니다

list.ForEach(item => 
              { 
                  item.a = "hello!"; 
                  item.b = 99; 
              }); 

MSDN :


list.ForEach(lamba=>lambda.a="hello!"); 

된다

list.ForEach(item=>{
     item.a = "hello!";
     item.b = 99;
});

물론 다음과 같은 목록을 만들 때 할당 할 수도 있습니다.

var list = new List<foo>(new []{new foo(){a="hello!",b=99}, new foo(){a="hello2",b=88}}); 

솔직히 List를 사용할 필요는 없습니다.

foreach (var item in list) { item.a="hello!"; item.b=99; }

list.ForEach(i => i.DoStuff());
public void DoStuff(this foo lambda)
{
  lambda.a="hello!"; 
  lambda.b=99;
}

참고 URL : https://stackoverflow.com/questions/9114748/set-multiple-properties-in-a-listt-foreach

반응형