我有收藏:
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? (对不起我的英文)
答案 0 :(得分:3)
如果您希望C
为A
和B
的总和,则最好使用计算字段:
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;
}
}
}
所以
Test test = new Test()
{
A = 1;
B = 2;
};
test.C == 3; //true
上述优点是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;
}
答案 1 :(得分:2)
foreach (Test t in test)
{
t.C = t.A + t.B;
}
只需将属性设置为等式