2015-11-28 34 views
0

創建類列表我有字符串的項目[]一個靜態數組,如下:在陣列的每個項C#

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來獲取其他數據點。

+0

具有兩個屬性的第一指標,第二屬性返回類型再創建一個類應該是你的類「價目表」,並創建該類的一個數組和遍歷它,那麼你會得到價格表的每一個項目,希望這將有助於爲你。 –

+0

我認爲你讓我朝着正確的方向前進。它會看起來像這樣:Public Class PopertyData {public int index {get; set;} public PriceList properties {get; set;}}? –

回答

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() { ... }); 
+0

你可以添加一個不使用LINQ的替代答案嗎? –

+0

取決於您實際將要處理的數據。使用字典進行快速查找會很有效,但根據最常用的數據結構,最好使用不同的數據結構。 –

0

你可能會更好地創建一個類,包括物品描述:

​​

你可以動態地添加條目到ArrayList(在System.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你可以在指示位置與項目直接引用[ñ]你也可以使用的foreach。

+0

如果列表中的所有項目都是相同類型,則應使用列表。對於類型安全和性能來說,這是一個更好的選擇。 – Sami

+0

同意...'列表'是非常有用的 - 與數組明確提到的問題,我給了一個答案,使用和改進:) –

+0

他們是同一類型。然而stringItems [1]將有一個可能有10,000行的類列表。我需要根據任何變量訪問每個項目和切片和骰子的列表。 listDate,ListPrice,Volume等 –

相關問題