2016-07-21 2 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, чтобы избежать исключения при попытке получить элемент с индексом из-из переплете.

Смежные вопросы