Oto wersja LINQ roztworu Fredrik użytkownika. Zauważ, że Enumerable.Range
daje IEnumerable<int>
, więc musisz najpierw przekonwertować na znaki. Cast<char>
będzie pracował w 3.5SP0 wierzę, ale jak 3.5SP1 trzeba zrobić „właściwego” konwersja:
var chars = Enumerable.Range(0, char.MaxValue+1)
.Select(i => (char) i)
.Where(c => !char.IsControl(c))
.ToArray();
Utworzyłem wynik jako tablicę jako że to właśnie pytanie zadane za - to niekoniecznie najlepszy pomysł. To zależy od przypadku użycia.
Należy zauważyć, że nie uwzględnia to również pełnych znaków Unicode, tylko te w podstawowej płaszczyźnie wielojęzycznej. Nie wiem, co zwraca dla surogatów wysokich/niskich, ale warto przynajmniej wiedzieć, że pojedynczy char
tak naprawdę nie pozwala ci reprezentować wszystkiego :(
definiowanie wydruku – AnthonyWJones
Proszę określić „do druku” -.? masz na myśli tylko „znaki druku ASCII” (zgodnie z odpowiedzią ilivewithin r) czy chciałbyś dołączyć znaki akcentowane? –
Zakładam, że przez druk mówimy o druku na papierze? Jeśli szukasz tylko ascii wyszukiwania http://www.asciitable.com jest jednym. Dla unicode charmap.exe jest oczywistą opcją. –