You have to create the array first, using new[]
.
string letter = (new[] {"a","b","c"}).AnyOne();
As @hvd mentioned you can do this without parantheses (..)
, I added the parantheses because I think it’s more readable.
string letter = new[] {"a","b","c"}.AnyOne();
And you can specify the data type new string[]
as on other answers has been mentioned.
You can’t just do {"a","b","c"}
, because you can think of it as a way to populate the array, not to create it.
Another reason will be that the compiler will be confused, won’t know what to create, for example, a string[]{ .. }
or a List<string>{ .. }
.
Using just new[]
compiler can know by data type (".."
), between {..}
, what you want (string
). The essential part is []
, that means you want an array.
You can’t even create an empty array with new[]
.
string[] array = new []{ }; // Error: No best type found for implicity-typed array