如何向对象数组添加多个值

时间:2013-11-01 20:06:50

标签: c# arrays object

更快/更短的方法是什么。

        Store[] store = new Store[3];

        store [0] = new Store();
        store [0].Price = 5.24;
        store [0].ValueType = eValueType.Normal;

        store [1] = new Store();
        store [1].Price = 7.89;
        store [1].ValueType = eValueTyp.Normal;

        store [2] = new Store();
        store [2].Price = 7.89;
        store [2].ValueType = eValueTyp.Normal;




public class Store
{
    public enum eValueType
    {
        Real,
        Normal
    }

    private double _price;
    private eValueType _valueType;

    public double Price
    {
        get { return _price; }
        set { _price = value; }
    }

    public eValueType ValueType
    {
        get { return _valueType; }
        set { _valueType = value; }
    }
}

3 个答案:

答案 0 :(得分:2)

您可以使用对象初始值设定项,如下所示:

store[0] = new Store() { Price = 5.24, ValueType = eValueType.Normal };
store[1] = new Store() { Price = 7.89, ValueType = eValueType.Normal };
store[2] = new Store() { Price = 7.89, ValueType = eValueType.Normal };

或者,如果您为Store类提供构造函数,请执行以下操作:

public Store (double price, eValueType valueType)
{
    this.Price = price;
    this.eValueType = valueType;
}

然后你可以像这样使用它:

store[0] = new Store(5.24, eValueType.Normal);
store[1] = new Store(7.89, eValueType.Normal);
store[2] = new Store(7.89, eValueType.Normal);

另外,如果您尝试表示货币值,则应该使用decimal代替double

答案 1 :(得分:1)

var stores = new []
    {
        new Store { Price = 5.24, ValueType = eValueType.Normal },
        new Store { Price = 7.89, ValueType = eValueType.Normal },
        new Store { Price = 7.89, ValueType = eValueType.Normal }
    };

答案 2 :(得分:1)

var stores = (new[] { 5.24, 7.89, 7.89 })
             .Select(p => new Store{ Price = p, ValueType = eValueType.Normal })
             .ToArray();

或者如果你有不同的“ValueTypes”:

var prices = new[] { 3.12, 6.34, 7.89 };
var values = new[] { eValueType.Normal, eValueType.Real, eValueType.Real };
var stores = prices.Zip(values, 
                 (p, v) => new Store { Price = p, ValueType = v })
                 .ToArray();