2016-07-21 71 views
0

目前我正在嘗試編寫CSV導出器實用程序以幫助加快爲主管創建工作訂單的過程。在紙上,這是一個非常簡單的概念,導入包含我們零件信息和當前生產要求的CSV。 CSV的列被分成單獨的列表。我正在嘗試創建一個按鈕,允許用戶根據零件號自動設置數量。匹配列表中的特定條目

我目前正在考慮這樣做的方式是通過抓取列表中'特定'的特定條目(想不到更好的術語)。

Dinosaur List 
1. T-Rex 
2. Triceratops 
3. Allosaurus 

Diet List 
1. Carnivore 
2. Herbivore 
3. Carnivore 

如果我的用戶選擇Allosaurus,我想一個返回值的3,然後我會用它來從我的第二個列表搶權項,在這種情況下, Carnivore

我不確定我會如何去做這件事,任何幫助或方向將不勝感激。

回答

0

在這種情況下,你應該真的使用Object-Oriented編程。

如果我是你,我會申報一個類恐龍,併爲每種類型的恐龍製作子類。在超類(恐龍)中,放置一個類型爲DinosaurDiet的抽象屬性來強制子類實現此屬性。下面是一些代碼來解釋我在說什麼:

enum DinosaurDiet //The enumeration for the types of diet 
{ 
    Carnivore, 
    Herbivore 
} 

abstract class Dinosaur //abstract meaning it can't be instanciated, and only serves as a superclass 
{ 
    public abstract DinosaurDiet Diet { get; } 
} 

class TRex : Dinosaur 
{ 
    public override DinosaurDiet Diet { get { return DinosaurDiet.Carnivore; } } 
} 

class Triceratop : Dinosaur 
{ 
    public override DinosaurDiet Diet { get { return DinosaurDiet.Herbivore; } } 
} 

class Allosaurus : Dinosaur 
{ 
    public override DinosaurDiet Diet { get { return DinosaurDiet.Carnivore; } } 
} 

一旦你擁有了這一切,你可以讓他們的列表,並使用索引得到它們。具體方法如下:

List<Dinosaur> dinos = new List<Dinosaur>(); 

dinos.Add(new TRex()); 
dinos.Add(new Triceratop()); 
dinos.Add(new Allosaurus()); 

//Get the 2nd dinosaur from the list (0-based) 
int index = 1; 
Dinosaur d = dinos[index]; 

確保測試index >= 0 && index < dinos.Count試圖約束外的一個指數來獲得一個元素時,避免異常。

相關問題