c# помогите с классами [закрыт]

192
25 декабря 2018, 22:30
public class Element
    {
        public string Name { get; set; }
        public int Hp { get; set; }
    }    
// класс элемента

public class Recept 
        {
            private Element[,] recept;
            int size;
            public Recept(Element elementZero, Element elementOne, Element elementTwo, Element elementThee, Element elementFour, Element elementFive, Element elementSix, Element elementSeven, Element elementEight)
            {
                size = 3;
                recept = new Element [,]{ { elementZero, elementOne, elementTwo}, { elementThee ,  elementFour, elementFive}, { elementSix, elementSeven, elementEight} };
            }
        }
    // рецепты для создание нового элемента из сочетаний элементов и их позиции

           Recept stick = new Recept(null, null, null, null, tree, null, null, tree, null);
// для примера сделал рецепт палки

    // здесь создаю массив рецептов чтобы после смерить с  details  все ли элементы есть и позиция ровняется ли как на рецепте
        private Recept[, ,] receptArray;
           size = 3;
           private int size;
           int count;
           count = 21;
           details = new Element[size, size];
           receptArray = new Recept[count, size, size];
    //как сравнить значение с recept и receptArray ?
    //пытаюсь обратится через индексы
        for (int i = 0; i < count; i++)
                    {                
                        for (int k = 0; k < size; k++)
                        {
                            for (int l = 0; l < size; l++)
                            {
                                // Element templaye = new Element { Name = receptArray[i, k].Name }; пытался так не получилось 
                                if (receptArray[i, k, l] == details[k,l)// так не работает
                                {
                                }
                            }
                        }
                    }
Answer 1

Для прояснения вашего вопроса возьмем такой пример суповарения:

static void Main(string[] args)
{
    var soups = new Recept("Супы", "Фасолевый", "Гороховый");
    var el1 = new Element("сухой горох", 500);
    var el2 = new Element("копченые свиные ребра", 500);
    var el3 = new Element("бекон", 100);
    var el4 = new Element("луковица", 15);
    var el5 = new Element("морковь", 20);
    var el6 = new Element("картофель", 200);
    var el7 = new Element("горчица", 5);
    var el8 = new Element("чеснок", 3);
    var el9 = new Element("укроп и петрушка", 2);
    var el10 = new Element("копченая рулька", 1000);
    var el11 = new Element("охотничьих колбасок", 300);
    var el12 = new Element("сушеной фасоли", 450);
    var el13 = new Element("соль, свежемолотый черный перец", 7);
    var el14 = new Element("лавровый лист", 1);
    var el15 = new Element("розмарин", 0.5);
    soups.AddElements("Фасолевый",
            el10, el11, el12, el5, el4, el8, el13, el4, el15);
    soups.AddElements("Гороховый",
            el1, el2, el3, el4, el5, el6, el7, el8, el9, el14, el13);
    //
    var firstSoup = soups.GetDishesNames().First();
    Console.WriteLine($"Первый суп: {firstSoup}");
    Console.WriteLine(new string('-', 40));
    foreach (var element in soups.GetElementsByNameDish(firstSoup))
    {
        Console.WriteLine($"{element.Name} - {element.Weight}");
    }
    Console.WriteLine(new string('-', 40));
    Console.ReadKey();
}

Реализовано это с помощью таких классов

public class Element
{
    public Element(string name, double weight)
    {
        Name = name;
        Weight = weight;
    }
    public string Name { get; set; }
    public double Weight { get; set; }
}
public class Recept
{
    private Dictionary<string, List<Element>> _dishes;
    public Recept(string name, params string[] dishNames)
    {
        _dishes = new Dictionary<string, List<Element>>(dishNames.Count());
        Array.ForEach(dishNames, d => _dishes.Add(d, new List<Element>()));
    }
    public string Name { get; private set; }
    public bool AddElements(string nameDish, params Element[] elements)
    {
        if (!_dishes.ContainsKey(nameDish)) return false;
        Array.ForEach(elements, e => _dishes[nameDish].Add(e));
        return true;
    }
    public List<Element> GetElementsByNameDish(string nameDish)
    {
        if (!_dishes.ContainsKey(nameDish)) return null;
        return _dishes[nameDish];
    }
    public List<string> GetDishesNames()
    {
        return _dishes.Keys.ToList();
    }
}

Теперь глядя на этот пример, исправьте свой вопрос так, чтобы было в достаточной степени ясности понятно какой функционал вам требуется, потому как из вашего вопроса в настоящий момент это не ясно.

READ ALSO
Как правильно зациклить исключение?

Как правильно зациклить исключение?

Сообразил только в Catch менять переменную и с помощью goto повторять часть кода, а как правильно делать ?

190
Appearance для FocusedRow после потери фокуса

Appearance для FocusedRow после потери фокуса

Возникла достаточно простая проблемаУ меня есть форма с двумя элементами: 1) chooseBox - форма для выбора из списка; 2) gridView - представление в таблице...

195
Как посчитать сумму всех чисел для каждого нуля в массиве c#

Как посчитать сумму всех чисел для каждого нуля в массиве c#

Попалась задачка на собеседовании: есть нули и единицы в массивеНадо для каждого нуля посчитать сколько единиц правее него и вывести сумму...

253
apach24+.htaccess+php error 500

apach24+.htaccess+php error 500

Проблема такая, при переносе онлайн игры на другой хостинг возникает ошибки следующего родаСразу говорю ссылки все нормальные не битые

178