Valteris Eidukevicius Ответов: 1

Почему вы получаете только половину массива?


hi why, in what condition Temp1, Temp2, Temp3 is not bying outputed

public static readonly Queue<string> GetTemps = new Queue<string>(new string[] { "Temp1", "Temp2", "Temp3", "Temp4", "Temp5", "Temp6" });

        public NmView()
        {
            Queue<string> qu = ItemData.GetTemps;

            MessageBox.Show("Count: " + qu.Count);

            foreach (string item in qu)
            {
                MessageBox.Show(item);
            }
        }

Output Count: 3, Temp4, Temp5, Temp6


Что я уже пробовал:

погуглив, аскт на несколько диссонирующих шанелей ответа пока нет...

phil.o

Поставьте точку останова на первой строке таблицы. NmView метод, нажмите клавишу F5 и проверьте содержимое qu переменная. Есть ли шанс, что вы уже позвонили в полицию? Dequeue метод 3 раза перед вызовом NmView метод?

Valteris Eidukevicius

Есть 2 пользовательских элемента управления, которые используют GetTems, так что ading those + test 3 cals в общей сложности что-то ломает ?

Valteris Eidukevicius

Queue<string> - Это класс, и я просто очищаю его экземпляр с помощью deque, так что решение будет путем вставки копии ?

phil.o

Всякий раз, когда вы звоните в Dequeue метод, то первый элемент возвращается и удаляется из очереди. Если вы не хотите удалять элемент, используйте Peek вместо этого-метод.
Очередь<T> класс[^]

Valteris Eidukevicius

Peek швов, чтобы возиться с итерациями, передавая копию швов в правильном направлении

Valteris Eidukevicius

Temps используются для Привязок, и не все привязки подсматривают, так что после того, как экземпляр сделан, есть ли способ вернуться рядом с 0 ?

Valteris Eidukevicius

Нет FirstOrDefoult() не устанавливает рядом с 0, оставил ошибку в коде, в любом случае вставка копии работает

Valteris Eidukevicius

Ваше предположение о том, что дек был вызван в нескольких случаях, было правильным

1 Ответов

Рейтинг:
7

Valteris Eidukevicius

Вроде бы это был дум простой тинд, на который я потратил много времени, решение:

public static Queue<string> GetTemps => new Queue<string>(new string[]  
    { "Temp1", "Temp2", "Temp3", "Temp4", "Temp5", "Temp6"});