Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 直接设置字典元组值_C#_Dictionary_Tuples - Fatal编程技术网

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;

如果您想更改其中一个值,那么不要使用元组-使用可变类。否则,您这样做是合适的(保留第二个值)。

是不可变的。一旦创建,它们将是只读的。因此,您需要更改整个集合,而不是元组,使用类对象并定义您的属性。它们是不可变的。一旦创建,它们将是只读的。因此,您需要更改整个集合,而不是元组,使用类对象并定义您的属性。