Почему в окне просмотра Visual Studio отображаются неправильные значения ValueTuples в коллекции?
Я обнаружил, что ValueTuples оцениваются по-разному, когда я получаю доступ к их свойствам из коллекции.
public static List<Tuple<string, bool>> MyTupleList = new List<Tuple<string, bool>>
{
new Tuple<string, bool>("test", true)
};
public static List<(string b, bool c)> MyList = new List<(string b, bool c)>
{
("test", true)
};
Почему эти две выделенные строки оцениваются по-разному и как я могу изменить "MyList[0].c", чтобы получить значение правильно?
ht tps://stackru.com/images/7726a3098a1cfb56dd7ce8ccc92c51bc88663434.png
1 ответ
Решение
Это похоже на ошибку в Visual Studio 2017.
Есть несколько связанных с этим ошибок, упомянутых в трекере вопросов github Рослина, например:
- Смотровое окно не обрабатывает
List<Tuple>
правильно - который все еще открыт, но кажется исправленным (при доступе к значению какItem1
), см. комментарий Ранго. - Отладчик не может оценить list[0].first, если T = ValueTuple - перемещен во внутренний трекер ошибок Visual Studio, поскольку это не связано с компилятором.
Поскольку средство отслеживания проблем Visual Studio не является общедоступным, мы можем только ждать и надеяться, что эти ошибки будут исправлены.