The n -by-2 array allows initializer syntax:
string[,] z = { { "a", "b" }, { "c", "d" }, { "z", "w" }, };
In this case, the dimensions are 3-on-2.
If you prefer an array of arrays, string[][] , the syntax will be a little more clumpsy. Some strings may randomly (or intentionally) have different lengths than others ("jagged" array). An array of arrays may be easier to order using Array.Sort in an "external" array, with some IComparer<string[]> or Comparison<string[]> .
Otherwise, use SortedDictionary<string, string> or SortedList<string, string> , as was already suggested in the comment from spender :
var z = new SortedDictionary<string, string> { { "a", "b" }, { "c", "d" }, { "z", "w" }, };
Any type, including user-defined types, that has an (accessible and non-static) Add method that accepts two strings will allow this type of collection initializer to be used. For instance:
var z = new YourType { { "a", "b" }, { "c", "d" }, { "z", "w" }, };
would be roughly equivalent to:
YourType z; { var temp = new YourType(); temp.Add("a", "b"); temp.Add("c", "d"); temp.Add("z", "w"); z = temp; }