আপনি একটি বহুমাত্রিক অ্যারের প্রস্থ এবং উচ্চতা কীভাবে পাবেন?


180

আমি একটি অ্যারে সংজ্ঞায়িত করেছি:

int [,] ary;
// ...
int nArea = ary.Length; // x*y or total area

এটি সমস্ত ভাল এবং ভাল, তবে এই অ্যারেটি পৃথকভাবে xএবং yমাত্রাগুলিতে কত বিস্তৃত তা আমার জানতে হবে । যথা, ary.Length12 ফেরত আসতে পারে - তবে এর অর্থ কী অ্যারেটি 4 টি উচ্চ এবং 3 প্রশস্ত, বা 6 উচ্চ এবং 2 প্রশস্ত?

আমি কীভাবে এই তথ্যটি পুনরুদ্ধার করতে পারি?



উত্তর:


235

আপনি যে মাত্রাটি পুনরুদ্ধার করতে চান তার সূচী দিয়ে আপনি অ্যারে ব্যবহার করুন et


104
.Rankমাত্রা সংখ্যার জন্য। যদি এই 2 হয়, .GetLength(0), সারির সংখ্যা জন্য .GetLength(1)কলামের সংখ্যা জন্য।
কর্নেল আতঙ্ক



24

অন্যান্য কিছু পোষ্ট কোনটি মাত্রা কোনটি সম্পর্কে বিভ্রান্ত। এখানে একটি নুনিট পরীক্ষা রয়েছে যা দেখায় যে 2 ডি অ্যারে সি # তে কীভাবে কাজ করে

[Test]
public void ArraysAreRowMajor()
{
    var myArray = new int[2,3]
        {
            {1, 2, 3},
            {4, 5, 6}
        };

    int rows = myArray.GetLength(0);
    int columns = myArray.GetLength(1);
    Assert.AreEqual(2,rows);
    Assert.AreEqual(3,columns);
    Assert.AreEqual(1,myArray[0,0]);
    Assert.AreEqual(2,myArray[0,1]);
    Assert.AreEqual(3,myArray[0,2]);
    Assert.AreEqual(4,myArray[1,0]);
    Assert.AreEqual(5,myArray[1,1]);
    Assert.AreEqual(6,myArray[1,2]);
}


3

আপনি নিম্নলিখিত হিসাবে প্রতিটি নির্দিষ্ট মাত্রায় সর্বশেষ উপাদানগুলির সূচকগুলি ব্যবহার করে বিবেচনা করতে পারেন;

int x = ary.GetUpperBound(0);
int y = ary.GetUpperBound(1);

মনে রাখবেন যে এটি 0-ভিত্তিক হিসাবে সূচকের মান পায়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.