我们有以下的代码,之前一直在我们的UWP应用中正常运行,但今天在更新到最新版本的Visual Studio 2017 15.3后出现了问题。
private void Test()
{
var groups = new List<(Guid key, IList<(string, bool)> items)>();
var items = new List<(string, bool)>
{
("a", true),
("b", false),
("c", false)
};
var group = (Guid.NewGuid(), items);
groups.Add(group);
}
输出窗口中没有错误消息,但是有以下内容:
Tuple元素名称“items”已被推断。请使用语言版本7.1或更高版本,按其推断的名称访问元素。
有任何想法为什么会这样,以及如何解决?
new List<(Guid key, IList<(string, bool)> items)>
这样的类型可以很好地反对元组。 除了添加项目之外,没有任何操作是有效或明显的 - 考虑一下是否希望使用Dictionary<Guid, HashSet<string>>
等类似类型。 (显然,适当的类型完全取决于您的用例,但是嵌套的元组列表通常不是最佳选择。) - Jeroen Mostert