2016-03-30 19 views
1
string test = "asdf"; 

IEnumerable<char> str = test.ToArray().Distinct(); 

string[] strArray = str.Select(x => x.ToString()).ToArray(); 

Onu Enumerable'a dönüştürmem gerekiyor ve sonra onu bir dizeye [] atabiliyorum.LinQ'da Daha İyi Kod?

IEnumerable kullanmadan değişken sınamaya dayalı olarak [] dizesine nasıl yapılacağı hakkında daha iyi bir çözüm biliyor musunuz?

Yukarıdaki geçerli kod bir sapmadır ve kısayolu daha iyi hale getirmenin mümkün olup olmadığını merak ediyorum.

+2

Örneğiniz net değil. "Aaab" gibi bir dizgi {"a", "b"} dizi dizisine dönüştürülmesini istiyor musunuz? –

cevap

1

Sen yapabilirsiniz: dize zaten IEnumerable<char> olduğu gibi ilk satırdaki ToArray aramaya gerek yoktur

string[] strArry = test.Distinct().Select(x=> x.ToString()).ToArray(); 

.

Eğer dizeye yapmak hakkında daha iyi bir çözüm biliyor musunuz [] IEnumerable kullanmadan değişken test dayalı? Eğer IEnumerable<T> döndürür Distinct kullandığınızda

, ben tam olarak IEnumerable<T> kaçınarak ne anlama geldiğini emin değilim ama aynı zamanda dizesindeki karakter yineleme ve LINQ kullanmadan, dizeye çevirebiliriz.

+1

Yardımlarınız için teşekkür ederiz! –