匹配列表中的特定条目
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
以避免在尝试获取越界索引处的元素时出现异常。
目前我正在尝试为工作编写一个 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
以避免在尝试获取越界索引处的元素时出现异常。