0

什么是更快/更短的方法来做到这一点。

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

3 回答 3

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

于 2013-11-01T20:07:58.140 回答
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();
于 2013-11-01T20:36:37.913 回答
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 }
    };
于 2013-11-01T20:11:48.970 回答