C# 7'de bir değişken hedef değişken kullanarak adlandırılmış bir tuple seçmenin daha iyi bir yolu var mı? Örnek 1'de yanlış bir şey yapmalıyım ya da bir şeyi tamamen yanlış anlamalıyım. Bunu yapmak için hedef türünü açıkça belirlemeliyim.Seçili deyimlerde adlandırılmış geçişler kullanma
//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)));
Büyük fark etmedi vb uyumluluğu etrafında daha fazla ayrıntı için feature document bakınız: böylece yazma mümkün olacak Deklarasyonun içindeki tupleda böyle. – gmn
Merak etme, neden anonim tiplerde olduğu gibi '' A = x.A'' değil? '' var x = yeni {A = x.A, B = x.B}; ' –
@RandRandom: Bu, tuple öğesi adlarının sözdizimi değil. Her iki deklarasyonda ve tuple literallerinde sürekli olarak::. Anonim tipler daha çok nesne başlatıcıları, "ayar" özellikleri (türler aslında değişmez olsalar da) gibidir. –