由於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中命名。 –