有没有更好的方法在C#7中使用var目标变量选择命名元组?我必须在例1中做错某个事情,或者完全误解某些事情。我似乎必须明确设定目标类型才能做到这一点。在选择语句中使用命名元组
//1. Fails to compile with "incorrect number of type parameters" issue.
var tuples = source.Select<(int A, int B)>(x => (x.A, x.B));
//2. Compiles
IEnumerable<(int A, int B)> tuples = toCheck.Select(x => (x.A, x.B));
//3. Compiles
var tuples = new HashSet<(int A, int B)>(source.Select(x => (x.A, x.B)));
太好了,我不知道你能嵌入名字中的元素见feature document在这样的声明里面的元组中。 – gmn
出于好奇,为什么不是匿名类型中的''A = x.A''? ''var x = new {A = x.A,B = x.B};'' –
@RandRandom:这不是元组元素名称的语法。它在声明和元组文字中都是一致的':'。匿名类型更像是对象初始化器,“设置”属性(尽管类型实际上是不可变的)。 –