将项目添加到现有集合C#

时间:2016-10-28 13:53:56

标签: c# collections

我有收藏:

    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? (对不起我的英文)

2 个答案:

答案 0 :(得分:3)

如果您希望CAB的总和,则最好使用计算字段:

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;
} 

只需将属性设置为等式