Co to jest metoda selectMany.ToArray()
? Czy jest to metoda wbudowana w C#
?Konwertuj dwuwymiarową tablicę
Potrzebuję przekształcić dwuwymiarową tablicę na jednowymiarową tablicę.
Co to jest metoda selectMany.ToArray()
? Czy jest to metoda wbudowana w C#
?Konwertuj dwuwymiarową tablicę
Potrzebuję przekształcić dwuwymiarową tablicę na jednowymiarową tablicę.
SelectMany to operator rzutowania, metoda rozszerzenia zapewniona przez przestrzeń nazw System.Linq.
Wykonuje jedną do wielu projekcji elementu na sekwencji, co pozwala "spłaszczyć" wynikowe sekwencje w jeden.
Można używać go w ten sposób:
int[][] twoDimensional = new int[][] {
new int[] {1, 2},
new int[] {3, 4},
new int[] {5, 6}
};
int [] flattened = twoDimensional.SelectMany(x=>x).ToArray();
Jeśli oznaczać postrzępione array (T[][]
) SelectMany
jest twoim przyjacielem. Jeśli jednak masz na myśli prostokątny array (T[,]
), a następnie można po prostu wyliczyć dane date poprzez foreach
- czyli
int[,] from = new int[,] {{1,2},{3,4},{5,6}};
int[] to = from.Cast<int>().ToArray();
Ten wątek, http://stackoverflow.com/questions/5132397/fast-way-to-convert-a-two-dimensional-array-to-a-list-one-dimensional, przechodzi w szczegóły wykonywania metody foreach a także niektóre wskaźniki wydajności. – ShawnFeatherly
punkt pedant; to nie jest to, co nazwałbym dwuwymiarową tablicą - jest poszarpaną tablicą ... –
@MarcGravell Czy to nie jest tablica 2D wyszczerbiona? Najwyraźniej poszarpana tablica nie jest tablicą prostokątną lub tablicą "kostki". Ale wciąż ma pewien wymiar. Aby powiedzieć, że tablica 2D nie określa postrzępionych lub geometrycznych/prostych. – barlop
@barlop być może, ale ostatecznie "tablica" tutaj odnosi się do zewnętrznej tablicy, która jest wektorem odniesień; poszlak wyraźnie pokazuje, że jest bardziej złożony i zgodziłbym się, że w pewnym sensie można użyć "2D", w przeciwieństwie do, na przykład, "int [] [] []". Ostatecznie nazewnictwo jest trudne :) –