我想用Tupleclass来存储我程序中需要的2个整数信息(StartAddress,EndAddress).
但我发现Tuple项是ReadOnly,所以如果我需要为一个项设置一个值,我需要重新实例化一个元组.
这个设计决定背后的原因是什么?
我想知道是否有歌厅的一个优雅的方式string[]从List<Tuple<int, int, string>>?
我正在考虑.NET方式(最好的扩展方法和lambda表达式:P)
PS Code来自.NET 3.5项目,因此Tuple是我自己的实现.
我有一个要修改的元组列表。
var myList = new List<(int head, int[] tail)> {
(0, new[] { 1, 2, 3 }),
(7, new[] { 8, 9 } ), };
var myArray = new (int head, int[] tail)[] {
(0, new[] { 1, 2, 3 }),
(7, new[] { 8, 9 } ), };
// ...
// ref var firstElement = ref myList[0];
ref var firstElement = ref myArray[0];
firstElement.head = 99;
Run Code Online (Sandbox Code Playgroud)
这非常适合数组,但不适用于列表。我知道这是因为索引器不执行引用返回;但是列表是否可以通过其他方式通过引用返回其元素,以便我可以修改返回的元组?
这将导致编译器错误“属性或索引器可能无法作为 out 或 ref 参数传递”:
ref var firstElementList = ref …Run Code Online (Sandbox Code Playgroud)