2016-07-21 67 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试图约束外的一个指数来获得一个元素时,避免异常。

相关问题