目前,我正在尝试编写CSV导出器实用程序,以帮助加快为我们的主管创建工作单的过程。在纸面上它是一个非常简单的概念,导入包含我们的零件信息和我们当前生产要求的CSV。 CSV的列被拆分为单独的列表。我尝试创建一个按钮,允许用户根据部件号自动设置数量。
我目前正在考虑的方法是抓住列表中的特定条目&#39 (不能想到一个更好的术语)。
示例:
Dinosaur List
1. T-Rex
2. Triceratops
3. Allosaurus
Diet List
1. Carnivore
2. Herbivore
3. Carnivore
如果我的用户选择Allosaurus
,我希望返回3
的值,然后我会用它来从我的第二个列表中获取正确的条目,在这种情况下,{{1} }。
我不确定我将如何做到这一点,我们将非常感谢任何帮助或指示。
答案 0 :(得分: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
以避免在尝试在越界索引处获取元素时出现异常。