由于C#7引入了值元组,它们是否有比元组更适合的有意义的场景?C#中的C#匿名类型是多余的7 7
例如,下面的行
collection.Select((x, i) => (x, i)).Where(y => arr[y.i].f(y.x)).ToArray();
使得以下行
collection.Select((x, i) => new {x, i}).Where(y => arr[y.i].f(y.x)).ToArray();
冗余。
对于其中一个更好地用于另一个(用于性能原因或优化)的用例是什么?
很明显,如果需要超过六个字段,元组不会被使用,但有没有更多的细微差别呢?
可读性吗? 'new {x,i}'完全清楚它是一个正在返回的新对象,而我不得不比较这两个例子来找出第一个例子。但那可能就是我。 – stybl
首先,它们在表达式树中支持,而元组文字不是...... –
请注意,您的示例不会在C#7.0中编译,因为'(x,i)'具有未命名的元组元素,但它们是隐式地在C#7.1中命名。 –