Как извлечь значения из двойного [,] в C#? - PullRequest
0 голосов
/ 23 марта 2020

У меня есть следующий массив:

 private static readonly double[,] positionsOfCustomer = new double[,] {                    
        {47.645892, -122.336954},   // Gasworks Park
        {47.688741, -122.402965},   // Golden Gardens Park
        {47.551093, -122.249266},   // Seward Park
        {47.555698, -122.065996},   // Lake Sammamish Park
        {47.663747, -122.120879},   // Marymoor Park
        {47.857295, -122.316355},   // Meadowdale Beach Park
        {47.530250, -122.393055},   // Lincoln Park
        {47.503266, -122.200194},   // Gene Coulon Park
        {47.591094, -122.226833},   // Luther Bank Park
        {47.544120, -122.221673}    // Pioneer Park
    };

Я бы предпочел называть значения, а не использовать комментарии, поэтому я пытаюсь использовать Visual Studio для извлечения таких значений, как:

 private static readonly object gasworksPark = { 47.645892, -122.336954 };
 // etc.

 private static readonly double[,] positionsOfCustomer = new double[,] {
        gasworksPark,   
        // etc.
    };

Но это приводит как минимум к двум ошибкам:

  1. Может использовать только выражения инициализатора массива для назначения типов массива. Вместо этого попробуйте новое выражение.
  2. Ожидается инициализатор вложенного массива.

Как извлечь эти значения так, чтобы компилятор их понял?

Ответы [ 3 ]

1 голос
/ 23 марта 2020

Вы также можете использовать это

private Dictionary<Name, Tuple<double, double>> names = new Dictionary<Name, Tuple<double, double>>
            {
                { Name.gasworksPark, new Tuple<double, double>( 47.645892, -122.336954 ) },
                { Name.goldenGardensPark, new Tuple<double, double>( 47.688741, -122.402965 ) }
            };

private enum Name
{
gasworksPark,
goldenGardensPark
}
1 голос
/ 23 марта 2020

Я не уверен, как этого добиться с Multidimensional Array, но это достижимо с Jagged Array:

private static readonly double[] gasworksPark = { 47.645892, -122.336954 };
private static readonly double[] goldenGardensPark = { 47.688741, -122.402965 };
// etc.

private static readonly double[][] positionsOfCustomer = new double [][]{
    gasworksPark,
    goldenGardensPark
};
0 голосов
/ 23 марта 2020

Вы можете попробовать это

private static readonly double[,] gasworksPark =  {{ 47.645892, -122.336954 }};
private static readonly double[,] goldenGardensPark = {{ 47.688741, -122.402965 }};
//etc...
private static readonly object[] positionsOfCustomer =
{
    gasworksPark, 
    goldenGardensPark,
    //etc
};
...