C# 直接设置字典元组值
是否可以执行类似的操作:C# 直接设置字典元组值,c#,dictionary,tuples,C#,Dictionary,Tuples,是否可以执行类似的操作:dictupletest[key].Item1=toggle在以下情况下 Dictionary<int, (bool, bool)> dictTupleTest = new Dictionary<int, (bool, bool)>(); var key = 3; var toggle = false; dictTupleTest.Add(key, (true, false)); //This works dictTupleTest[key]
dictupletest[key].Item1=toggle代码>在以下情况下
Dictionary<int, (bool, bool)> dictTupleTest = new Dictionary<int, (bool, bool)>();
var key = 3;
var toggle = false;
dictTupleTest.Add(key, (true, false));
//This works
dictTupleTest[key] = (toggle, dictTupleTest[key].Item2);
//While this gives an error
dictTupleTest[key].Item1 = toggle;
Dictionary dictupletest=new Dictionary();
var-key=3;
var-toggle=false;
添加(key,(true,false));
//这很有效
dictupletest[key]=(切换,dictupletest[key].Item2);
//这是一个错误
dictupletest[key].Item1=切换;
错误:error CS1612:无法修改“Dictionary.this[int]”的返回值,因为它不是变量。
或者有更好的方法吗?元组是不可变的;它存储在字典里这一事实与此无关。您将在以下情况下得到相同的错误:
var x = dictTupleTest[key];
x.Item1 = toggle;
如果您想更改其中一个值,那么不要使用元组-使用可变类。否则,您这样做是合适的(保留第二个值)。元组是不可变的;它存储在字典里这一事实与此无关。您将在以下情况下得到相同的错误:
var x = dictTupleTest[key];
x.Item1 = toggle;
如果您想更改其中一个值,那么不要使用元组-使用可变类。否则,您这样做是合适的(保留第二个值)。是不可变的。一旦创建,它们将是只读的。因此,您需要更改整个集合,而不是元组,使用类对象并定义您的属性。它们是不可变的。一旦创建,它们将是只读的。因此,您需要更改整个集合,而不是元组,使用类对象并定义您的属性。