İki boyutlu bir diziyi C# ile dilimlemek arıyorum.İki boyutlu dizi dilimi C#
İki [2,2] fiyatım var ve bu dizinin ikinci sırasını almak istiyorum. Fiyatları denedim [1], ama başka bir şey olabileceğini hissediyorum.
Şimdiden teşekkürler.
İki boyutlu bir diziyi C# ile dilimlemek arıyorum.İki boyutlu dizi dilimi C#
İki [2,2] fiyatım var ve bu dizinin ikinci sırasını almak istiyorum. Fiyatları denedim [1], ama başka bir şey olabileceğini hissediyorum.
Şimdiden teşekkürler.
Hiçbir doğrudan "dilim" işlemi, ama böyle bir uzantısı yöntemini tanımlayabilirsiniz:
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();
soru pürüzlü veya çok boyutlu bir dizi varsa burada ... olduğunu bir değer almak için nasıl ya:
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
DÜZENLEME: ... dilim aşamasına yönelik eklendi
Bu dizilerinden bir int dizisi elde etmek için, takip ettiğiniz değerleri dönüp almanız gerekir. Örneğin:
public IEnumerable<int> GetIntsFromArray(int[][] theArray) {
for(int i = 0; i<3; i++) {
yield return theArray[2][i]; // would return 6, 7 ,8
}
}
OP yazdı"" ... İkinci satır almak istiyorum ... "Örneğinizde, OP'nin jaggedArray [2] veya {6,7,8} içeren bir int [3] istediğini düşünüyorum. – JeffH
" Bu T [,] dizisinde "ne var? –
@Hamish Grubijan: Statik yöntemi bir [uzantı yöntemi] 'ne dönüştürür (http://msdn.microsoft.com/en-us/library/bb383977.aspx) – dtb
Bu satırı düşündüğümden satır sırasını yanlış kullanmıyor musunuz? dizi [satır, sütun] olmalıdır? – tsul