2016-07-21 9 views
0

現在、私はスーパーバイザの作業指示を作成するプロセスをスピードアップするために、CSVエクスポータユーティリティを作成しようとしています。紙では、シンプルなコンセプトです。部品情報と現在の生産要件を含むCSVをインポートしてください。 CSVの列は別々のリストに分割されています。私は、ユーザーが部品番号に基づいて数量を自動的に設定できるようにするボタンを作成しようとしています。リスト内の特定のエントリを一致させる

私が現在これをやっていることを考えているのは、リストの「スポット」(より良い言葉を考えることができない)の特定のエントリをつかむことです。

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

Diet List 
1. Carnivore 
2. Herbivore 
3. Carnivore 

私のユーザーは、私が3の戻り値を望む、と、私はこのケースでは、私の第二のリストから右のエントリをつかむためにそれを使用することになり、Allosaurusを選択した場合Carnivore

私はこれをやっていく方法を正確にはわかりません。何か助けや指示があれば大歓迎です。

答えて

0

この場合は、実際にObject-Orientedのプログラミングを使用する必要があります。

私があなただったら、恐竜クラスを宣言し、恐竜の種類ごとにサブクラスを作成します。スーパークラス(Dinosaur)では、タイプ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をテストするようにしてください:ここでは、方法です。

関連する問題