string[] arr = "this is a test".Select(c => c.ToString()).ToArray();
to store the indexes you don't need this alphabet
array
int[] indexes = "this is a test".Select(c => (int)(c-'a')).ToArray();
You can see the output in LinqPad
This is the way, most similar to your question, but I don't think using IndexOf
n times is a good solution
List<char> alphabet = "abcdefghijklmnopqrstuvwxyz ".ToList();
int[] arr = "this is a test".Select(c => alphabet.IndexOf(c)).ToArray();