Возможно, вы столкнулись с ситуациями, в которых вы объявляете определенное перечисление, и вы хотите оценить определенный объект, чтобы узнать, какие категории перечислений он удовлетворяет, то есть объект может удовлетворять условиям, классифицируется более чем на один перечислитель.Работа с перечислениями (создание списка)
Примером может служить, скажем, в университете, у меня есть различные курсы, и у этого есть список студентов, посещающих различные специализации, посещающие то же самое. Таким образом, мы имеем
public class Course
{
int Id;
IList<Electrical> ElectricalStudents;
IList<Computer> ComputerStudents;
IList<Bioengineering> BioengineeringStudents;
IList<Mechanical> MechanicalStudents;
}
и мое перечисление следующим образом
public enum ParentDepartment
{
Electrical,
Mechanical,
Biology
}
и для каждого объекта, конечно, у меня есть мне нужно определить, какие parentdepartments студенты попадают в так что я могу использовать их соответствующим образом (так что я могу отправить эти отделы)
Как бы вы справились с таким делом? Каков наилучший способ сделать то же самое.
Путь я могу думать, иметь статическую функцию на объект курса что-то, чье определение как этот
public static IList<ParentDepartment> GetParentDepartments(Course course)
{
public parentDepartmentList=new List<ParentDepartment>();
if(ElectricalStudents.Count>0)
Add(parentDepartmentList,ParentDepartment.Electrical);
if(ComputerStudents.Count>0)
Add(parentDepartmentList,ParentDepartment.Electrical);
if(MechanicalStudents.Count>0)
Add(parentDepartmentList,ParentDepartment.Mechanical);
if(BioengineeringStudents.Count>0)
Add(parentDepartmentList,ParentDepartment.Biology);
}
private void Add(IList<ParentDepartment> parentDepartmentList,ParentDepartment parentdept)
{
if(!parentDepartmentList.Contains(parentdept))
parentDepartmentList.Add(parentdept);
}
Надежда вещи очевидны. Пожалуйста, обратите внимание на гипотетическую модель и, пожалуйста, не давайте мне решения, как изменение модели.
Любое улучшение функций также приветствуется. Мне просто не нравится, как здесь были затронуты. Есть ли более компактный и лучший способ справиться с этим?
Любой ответ очень приветствуется.
P.S: Извините за то, что вы выбрали этот C#, но я думаю, что эта концепция может быть расширена на любой язык. Спасибо
приятно мне это нравится .. знаю об этом. Благодарю. даст другим возможность ответить, а затем выберет ответ. – Baz1nga
не имеет необходимости? – Baz1nga
Настоятельно рекомендуется иметь значение 0 в перечислении. «Однако мы настоятельно рекомендуем, чтобы перечисление содержало константу со значением 0.» http://msdn.microsoft.com/en-us/library/sbbt4032.aspx – asawyer