匹配列表中的特定条目

Matching specific entries in lists

目前我正在尝试为工作编写一个 CSV 导出器实用程序,以帮助加快为我们的主管创建工作订单的过程。从表面上看,这是一个非常简单的概念,导入包含我们的零件信息和当前生产要求的 CSV。 CSV 的列被拆分成单独的列表。我正在尝试创建一个按钮,允许用户根据零件号自动设置数量。

我目前考虑的方法是获取列表 'spot' 中的特定条目(想不出更好的术语)。

示例

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

Diet List
 1. Carnivore
 2. Herbivore
 3. Carnivore

如果我的用户选择 Allosaurus,我希望返回值 3,然后我将使用它从我的第二个列表中获取正确的条目,在本例中,Carnivore.

我不确定我将如何做这件事,任何帮助或指导将不胜感激。

在这种情况下你真的应该使用 Object-Oriented 编程。

如果我是你,我会声明一种 class 恐龙,并为每种恐龙制作子classes。在超级class(恐龙)中,放置一个DinosaurDiet类型的抽象属性来强制子classes实现这个属性。这里有一些代码来解释我在说什么:

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 以避免在尝试获取越界索引处的元素时出现异常。