2016-09-05 2 views
0

Я ничего не могу найти об этом, поэтому я не уверен, что это возможно, но У меня есть кортеж, который содержит координаты элемента в двумерном массиве. Я хочу найти расстояние между элементами в двумерном массиве , и для этого я хочу, чтобы позиция элемента в форме одного массива (я не уверен, что это лучший способ сделать это). Так можно ли превратить кортеж в массив?Как превратить кортеж в массив в C#?

Это массив:

string[,] keypad = new string[4, 3] 
     { 
      {"1", "2", "3"}, 
      {"4", "5", "6"}, 
      {"7", "8", "9"}, 
      {".", "0", " "} 
     }; 

Это метод, который я использовал, чтобы получить координаты элемента в многомерном массиве:

public static Tuple<int, int> CoordinatesOf<T>(this T[,] matrix, T value) 
    { 
     int w = matrix.GetLength(0); // width 
     int h = matrix.GetLength(1); // height 

     for (int x = 0; x < w; ++x) 
     { 
      for (int y = 0; y < h; ++y) 
      { 
       if (matrix[x, y].Equals(value)) 
        return Tuple.Create(x, y); 
      } 
     } 

     return Tuple.Create(-1, -1); 
    } 
+2

сделать поиск Google на 'C# Преобразовать кортежи в мульти- мерный массив 'http://stackoverflow.com/questions/13982940/list-of-tuples-to-multi-dimensional-array – MethodMan

+0

@MethodMan Я хочу превратить кортеж в массив, не многомерный массив – user3124306

+2

, тогда сделайте то же самое выполните поиск в google .. существует метод расширения ca lled '.ToArray()' также вы знакомы с linq или лямбда-выражениями ..? – MethodMan

ответ

2

Если я вас понимаю хорошо, вы хотите для преобразования Tuple<int, int> в массив ...

Как я упомянул в комментарии к вопросу, MSDN documentation объясняет, что именно Tuple<T1, T2> есть. 2-кортеж является паром или KeyValuePair<TKey, TValue> структуры ...

//create a 2-tuple 
Tuple<int, int> t = Tuple.Create(5,11); 
//pass Item1 and Item2 to create an array 
int[] arr = new int[]{t.Item1, t.Item2}; 

Для получения более подробной информации, пожалуйста, см:
Introduction to Tuples in .NET Framework 4.0
Overview: Working with Immutable Data

+0

Действительно, вы очень хорошо понимаете вопрос, так неясно, что даже образец кода имеет неправильный тип возврата! – Phil1970

+2

Спасибо. Я чувствую, что OP хочет преобразовать 2-кортеж в массив. ;) –

Смежные вопросы