C#で2次元配列をスライスしたいと思っています。C#の2次元配列スライス
私はダブル[2,2]価格があり、この配列の2番目の行を取得したいと考えています。私は価格[1、]を試しましたが、それは別のものかもしれないという気持ちがあります。
ありがとうございます。
C#で2次元配列をスライスしたいと思っています。C#の2次元配列スライス
私はダブル[2,2]価格があり、この配列の2番目の行を取得したいと考えています。私は価格[1、]を試しましたが、それは別のものかもしれないという気持ちがあります。
ありがとうございます。
そこには直接の「スライス」操作はませんが、あなたは、このような拡張メソッドを定義することができます。
public static IEnumerable<T> SliceRow<T>(this T[,] array, int row)
{
for (var i = 0; i < array.GetLength(0); i++)
{
yield return array[i, row];
}
}
double[,] prices = ...;
double[] secondRow = prices.SliceRow(1).ToArray();
質問はあなたがギザギザまたは多次元配列を持っている場合...ここのいずれかから値を取得する方法ですされています
...スライス一部に対処するために追加しました:
int[,] rectArray = new int[3,3]
{
{0,1,2}
{3,4,5}
{6,7,8}
};
int i = rectArray[2,2]; // i will be 8
int[][] jaggedArray = new int[3][3]
{
{0,1,2}
{3,4,5}
{6,7,8}
};
int i = jaggedArray[2][2]; //i will be 8
EDITこれらの配列の1つからint配列を取得するには、後に値をループして取得する必要があります。たとえば:
public IEnumerable<int> GetIntsFromArray(int[][] theArray) {
for(int i = 0; i<3; i++) {
yield return theArray[2][i]; // would return 6, 7 ,8
}
}
OPは、第二の行を取得したい...「」書きました... "あなたの例では、OPはjaggedArray [2]または{6,7,8}を含むint [3]を望んでいると思います – JeffH
' this'は 'this T [、] array'で何をしますか? –
@Hamish Grubijan:それは静的メソッドを[拡張メソッド](http://msdn.microsoft.com/en-us/library/bb383977.aspx)に変えます。 – dtb
私はそれと思ったので、ここで 'row'インデックスを置き忘れないでください'array [row、column]'にする必要がありますか? – tsul