كيف يمكنني تكرار الصفوف والأعمدة من مجموعة متعددة الأبعاد؟

StackOverflow https://stackoverflow.com/questions/832655

سؤال

وأود أن تكرار الصفوف والأعمدة بشكل منفصل على مجموعة الأبعاد:

object[,] values;

وكيف لي أن تكرار خلال فقط الصفوف والأعمدة فقط؟

هل كانت مفيدة؟

المحلول

وهذا يعتمد ما الأعمدة والصفوف بالنسبة لك ولكن هل يمكن استخدام هذا مقتطف من الشفرة:

for (int i = 0; i < values.GetLength(0); i++)
            Console.WriteLine(values[i, 0]);

و:

for (int i = 0; i < values.GetLength(1); i++)
            Console.WriteLine(values[0, i]);

نصائح أخرى

وهنا بعض رمز تكرار خلال الأبعاد الأولى والثانية من مجموعة مجموعة الأبعاد 2. (ليست هناك حقا "الصفوف" و "أعمدة" لمجموعة متعددة الأبعاد يمكن أن يكون أي عدد من الأبعاد)

object[,] values = new object[5,5];
int rowIWant = 3; //Make sure this is less than values.GetLength(0);
//Look at one "row"
for(int i = 0; i < values.GetLength(1); i++
{
    //Do something here with values[rowIWant, i];
}

int columnIWant = 2; //Make sure this is less than values.GetLength(1);
//Look at one "column"
for(int i = 0; i < values.GetLength(0); i++
{
    //Do something here values[i, columnIWant];
}
صفائف

ومتعدد الأبعاد لا تملك الصفوف والأعمدة في الطريق كنت في اشارة الى لهم - لديهم مجرد عدة مؤشرات تستخدم لقيم الوصول. سوف بالتكرار عبر تلك المصفوفة أن يتم ذلك باستخدام متداخلة لالحلقات، وإذا كنت ترغب في إجراء بعض العمليات الحسابية على قاعدة لكل البعد يجب تغيير ترتيب الحلقات وفقا لذلك.

وثمة خيار آخر، إذا كنت بحاجة فقط لتكرار عبر بعد واحد، هو استخدام مجموعة من المصفوفات بدلا من مجموعة متعددة الأبعاد مثل هذا:

object[][] values;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top