2016-10-28 3 views
0

에 항목을 추가 나는 컬렉션이 있습니다 기존 컬렉션 C#을

public class Test 
    { 
     public double Index { set; get; } 
     public double A { set; get; } 
     public double B { set; get; } 
     public double C { set; get; } 
    } 
    List<Test> test = new List<Test>(); 

내가 어떤 임의의 숫자와 A와 B를 작성. 그 후 컬렉션에 항목 C를 추가하고 싶습니다. 예를 들어, 내가 시도한 것 :

 foreach (Test t in test) 
     { 
      c = t.A + t.B; 
      test.Add(new Test {C = c }); <------ 
     } 

A와 B와 같은 위치에 요소 C를 어떻게 추가 할 수 있습니까? (미안 내 영어)

+9

컬렉션의 "항목은"이미'C' 속성이 방정식에 속성을 설정할 수 있습니다 당신이하고자하는 것은 이것입니다 : foreach (Test t in test) {tC = tA + tB; }', 이것이 원하는 것인지 확인할 수 있습니까? –

+0

하나의 요소 만 한 위치에있을 수 있습니다. 당신은 Insert (index, item) 대신 Add를 사용할 수 있습니다. – TaW

+1

그냥 말하자면 (어쨌든 당신이하려고하는 것을 얻지 못했기 때문에 당신을 위해 고려해야 할 대상이 될 수 있습니다) ... public double C {get A {return A + B; }}' – musefan

답변

2
foreach (Test t in test) 
{ 
    t.C = t.A + t.B; 
} 

그냥 같은

3

당신이 계산 필드 사용하는 것이 더 좋을 수도 AB의 합으로 C을 원하는 경우 : 그래서

Test test = new Test() 
{ 
    A = 1; 
    B = 2; 
}; 

test.C == 3; //true 

장점의

public class Test 
{ 
    public double Index { set; get; } 
    public double A { set; get; } 
    public double B { set; get; } 
    public double C 
    { 
     get 
     { 
      return A + B; 
     } 
    } 
} 

을 위의 것은 C은 항상 다른 값의 합계이므로 매번 다시 계산할 필요가 없습니다. 내가 위에서 받아 수행한다면 : 동기화

test.B = 3; //instead of the original 2 

그런 C 숙박 :

test.C == 3; //false 
test.C == 4; //now true 

원래 방법 (또는 다른 답)이 작업을 수행하려면를 결과 세트를 재 - 반복을 의미합니다.

또는 C#에서

6.0 당신은 expression-bodied property

public class Test 
{ 
    public double Index { set; get; } 
    public double A { set; get; } 
    public double B { set; get; } 
    public double C => A + B; 
}