Bu yazımızda 2 boyutlu bir dizinin satır ve sütun sayısının kullanıcı tarafından girilmesi işlemini gerçekleştireceğiz. Kullanıcı 2 boyutlu oluşturacağımız dizinin kaç satır ve kaç sütundan oluşacağını belirleyecek ve oluşturulan bu dizi içerisine rasgele 0-100 arası sayılar gireceğiz.
Daha sonra oluşturulan ve içine rasgele değerler atılan bu dizinin yazdırılması işlemini gerçekleştireceğiz.
Örneğimize ait kodlar:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | static void Main(string[] args) { Console.Write("Satır sayısını gir>>"); int a = Convert.ToInt32(Console.ReadLine()); Console.Write("Sütun sayısını gir>>"); int b = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("==============================="); Random rnd = new Random(); int[,] dizi2 = new int[a, b]; for (int i = 0; i < a; i++) { for (int j = 0; j < b; j++) { dizi2[i, j] = rnd.Next(0, 50); Console.Write(dizi2[i, j] + "-"); } Console.WriteLine(); } Console.ReadKey(); } |
Kodlarımızı oluşturduktan sonra programımızı çalıştıralım.
Öncelikle merhaba.
Benim bu dizilerle ilgili kücük bir problemim var.
Mesela 2 boyutlu dizimiz integer degil de object olsa, söyle ki;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
object[,] dizi = new object[2, 2];
object [] obj00 = { 1,”ali0″,10, “veli0”,10.5};
object[] obj01 = { 2, “ali1”, 20, “veli1”, 20.5};
object[] obj10 = { 1, “ali0”, 10, “veli0”, 10.5 };
object[] obj11 = { 2, “ali1”, 20, “veli1”, 20.5 };
dizi[0, 0] = obj00;
dizi[0, 1] = obj01;
dizi[1, 0] = obj10;
dizi[1, 1] = obj11;
for (int satir = 0; satir < dizi.GetLength(0); satir++)
{
for (int sutun = 0; sutun < dizi.GetLength(1); sutun++)
{
Console.WriteLine("Array {0},{1} index degeri : {2}", satir, sutun, dizi[satir, sutun]);
//bu üst satirda hata var, bir döngü ile object parcalanacak
}
}
Console.ReadKey();
}
}
}
programin ciktisi bu haliyle:
bu haliyle ciktisi :
Array 0,0 index degeri : System.Object[]
Array 0,1 index degeri : System.Object[]
Array 1,0 index degeri : System.Object[]
Array 1,1 index degeri : System.Object[]
Haliyle veriye ulasamiyorum
Ama ben bu dizi [0,0], dizi [0,1], dizi [1,0], dizi [1,1] dizilerini
ben foreach yada for döngüsü ile
örnegin
dizi [0,0] in verisi 1,"ali0",10, "veli0",10.5 icin:
1 icin int
"ali0" icin string
10 integer
"veli0" string
10.5 double olarak nasil parcalayabilirim ? (sanirim unboxing deniyor buna)
Yanitiniz icin simdiden tesekkür ederim.