Представьте, что у вас есть это где-то
public static T AnyOne<T>(this T[] ra) where T:class
{
int k = ra.Length;
int r = Random.Range(0,k);
return ra[r];
}
или даже просто
public static string OneOf(this string[] strings)
{
return "a";
}
Тогда, конечно, вы можете это сделать...
string[] st = {"a","b","c"};
string letter = st.AnyOne();
... это здорово. НО. Похоже, вы НЕ можете сделать это:
string letter = {"a","b","c"}.AnyOne();
или, возможно, это
string letter = ( {"a","b","c"} ).AnyOne();
или что-нибудь еще, что я пробовал.
На самом деле (1) почему нельзя это делать? и (2) я что-то упустил, как бы вы это сделали, если есть способ?