8
Orada 2 dize alanları ile bir yapı S seçin. Bunun için en etkili yol nedir? benzersiz kısıtlama çıkan koleksiyon açıksaLINQ Boş olmayan dizeleri
Selamlar, sadece Üstü
Orada 2 dize alanları ile bir yapı S seçin. Bunun için en etkili yol nedir? benzersiz kısıtlama çıkan koleksiyon açıksaLINQ Boş olmayan dizeleri
Selamlar, sadece Üstü
var myArray = S.Select(x => new [] { x.A, x.B })
.SelectMany(x => x)
.Where(x=> !string.IsNullOrEmpty(x))
.Distinct()
.ToArray();
işleri - A en setinde benzersiz kısıtlama ihtiyaç ve eğer B çalışacak aşağıdaki:
var As = S.Select(x => x.A)
.Where(x=> !string.IsNullOrEmpty(x))
.Distinct();
var Bs = S.Select(x => x.B)
.Where(x=> !string.IsNullOrEmpty(x))
.Distinct();
var myArray = yeni [] {As, Bs} .SelectMany (x => x) .ToArray();
var myArray = As.Concat(Bs).ToArray();
@Joey: Evet, güncelleştirilmiş - varsayım A'lar gereklidir benzersizliği ve B aksi takdirde ilk yaklaşım kaydı, 'As.Concat (Bs)' olur İçin – BrokenGlass
daha iyi olurdu, ortaya çıkan koleksiyonunda değil 'SelectMany' –
@ Claus Jørgensen ile aynı şeyi yapın: Doh! Ve çok daha basit ve okunabilir, bunu düzenledi. – BrokenGlass