为数组中的每个项创建类列表c#

时间:2015-11-28 04:06:06

标签: c# arrays

我有一个string []项的静态数组,如下所示:

public string[] stringItems = {"sItem1", "sItem2", "sItem3"}

我还有一个班级列表如下。每个数组项都需要有这个类列表对象:

public class PriceList
{
    public DateTime listDate { get; set; }
    public decimal listPrice { get; set; 
}

public override string ToString()
{
    return String.Format("Date: {0}; Price: {1};", listDate, listPrice);
}

我使用以下方法设置数据:

 dataList.Add(new PriceList() { listDate = today, listPrice = price, theVolume = volume });

任何人都可以帮我弄清楚如何使用for循环设置数组中每个索引的数据?我认为每个数组项都需要拥有自己的价格列表类,但我不知道如何设置和调用它们。我可能最容易将其设置为带参数的方法,并为每个数组项调用它。

感谢。

  

为了使我的问题更清楚,我需要以下内容:Table

每个sItem的属性可能包含100或100,000个列表项。每个sItem将始终具有相同数量的列表项。

在程序的不同点,我需要直接调用sItems来获取其他数据点。

2 个答案:

答案 0 :(得分:1)

public class Item {
   public string Name { get;set;}
   public List<PriceList> Prices {get;set;} = new List<PriceList>();
}

public string[] stringItems = {"sItem1", "sItem2", "sItem3"};
var items=stringItems.Select(x=>new Item {Name=x});

-- Adding --
items.First(i=>i.Name=="sItems1").Prices.Add(new PriceList() { ... });

答案 1 :(得分:0)

您可能最好创建一个包含项目描述的类:

public class PriceList
{
    public string itemDescription { get; set; }
    public DateTime listDate { get; set; }
    public decimal listPrice { get; set; }
    public int theVolume { get; set; }

    public override string ToString()
    {
        return String.Format("Item: {0}; Date: {1}; Price: {2}; Volume {3};", itemDescription, listDate, listPrice, theVolume);
    }
}

您可以向ArrayListSystem.Collections)或List<T>动态添加条目:

ArrayList items = new ArrayList();

List<PriceList> items = new List<PriceList>();

然后你可以遍历你的静态列表

foreach (string s in stringItems)
{
    PriceList pl = new PriceList () { itemDescription = s, listDate = today, listPrice = price, theVolume = volume };
    items.Add (pl);
}

ArrayListList都可以直接引用带有[ n ]项的索引位置,您也可以使用foreach。