PDA

View Full Version : سئوال ذربارهي آرايه دو بعدي



makan7
سه شنبه 24 فروردین 1389, 22:28 عصر
سلام
چند هفته هست كه تو دانشگاه درس C#‎ رو شروع كرديم

يك سئوال درباره ي كار با آرايه دارم لطفا اونايي كه ميدونن كمك كنن:

چگونه ميتوان برنامه اي نوشت آرايه اي دو بعدي بر فرض [Object[,] name =new object[3,3

در ستون اول اسم Stringرا بگير د و در ستون دوم نمره را از جنس عدد صحيح و در ستون سوم اگر نمره از 10 بالاتر حرف p و اگر پائين تر بود حرف f را چاپ كند.

r00tkit
سه شنبه 24 فروردین 1389, 23:17 عصر
سلام

والا تا انجا که یادم می یاد

ارایه: لیستی از n عنصر یا مجموعه ی متناهی از عناصر هم نوع( یعنی عناصر داده ای از یک نوع هستنند)و...

پس نمی تونی یه ارایه با نوع های مختلف درست کنی ولی یه راه هست این که نوع ارایه رو object کنی وبه نوع دلخواه cast کنی ولی به علت عمل boxing و unboxing پرفورمنس می یاد پایین

مثال:



x[0]="hello";
x[1]=1;
x[2]=1.5f;
String s=(String)x[0];


با این روش InvalidCastException دور از ذهن نیست

makan7
سه شنبه 24 فروردین 1389, 23:27 عصر
سلام

والا تا انجا که یادم می یاد

ارایه: لیستی از n عنصر یا مجموعه ی متناهی از عناصر هم نوع( یعنی عناصر داده ای از یک نوع هستنند)و...

پس نمی تونی یه ارایه با نوع های مختلف درست کنی ولی یه راه هست این که نوع ارایه رو object کنی وبه نوع دلخواه cast کنی ولی به علت عمل boxing و unboxing پرفورمنس می یاد پایین

مثال:



x[0]="hello";
x[1]=1;
x[2]=1.5f;
String s=(String)x[0];


با این روش InvalidCastException دور از ذهن نیست
سلام
خيلي ممنون از جوابتون
مشكل من دقيقاً اينه كه چه جوري اسمها رو تو ي( 0و0)0و1
2,0 جا بدم و همينطور عددها رو در ستون بعدي
اين كار رو ميشه با jagged array هم انجام داد؟

#aliyari_C
چهارشنبه 25 فروردین 1389, 00:35 صبح
سلام.
اگه حتما باید در کارت از Array ها استفاده کنی , انهم در این کار , چیز جالبی در نمی یاد.
می تونی از Generic ها که کاربردشان شبیه Array هاست ولی بهتر از آن

اول باید یک Class به صورت زیر تعرف کنی.


class ClassScore
{
public ClassScore(string name, int number, char state)
{
this.Name = name;
this.Number = number;
this.State = state;
}
public string Name
{
get;
set;
}
public int Number
{
get;
set;
}
public char State
{
get;
set;
}

}



بعدش به صورت زیر ازش استفاده کن




public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
HashSet<ClassScore> ArrayScore=new HashSet<ClassScore>();

string name = textBox1.Text;
int number = Convert.ToInt32(textBox2.Text);

char state= number >10 ? 'p':'f';

ArrayScore.Add(new ClassScore(name,number,state));

}
}

موفق باشی
-------------------------------------
چون به دریا می توانی راه یافت
سوی یک قطره چرا باید شتافت

</blockquote></blockquote>

makan7
چهارشنبه 25 فروردین 1389, 22:59 عصر
سلام.
اگه حتما باید در کارت از Array ها استفاده کنی , انهم در این کار , چیز جالبی در نمی یاد.
می تونی از Generic ها که کاربردشان شبیه Array هاست ولی بهتر از آن

اول باید یک Class به صورت زیر تعرف کنی.


class ClassScore
{
public ClassScore(string name, int number, char state)
{
this.Name = name;
this.Number = number;
this.State = state;
}
public string Name
{
get;
set;
}
public int Number
{
get;
set;
}
public char State
{
get;
set;
}

}



بعدش به صورت زیر ازش استفاده کن




public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
HashSet<ClassScore> ArrayScore=new HashSet<ClassScore>();

string name = textBox1.Text;
int number = Convert.ToInt32(textBox2.Text);

char state= number >10 ? 'p':'f';

ArrayScore.Add(new ClassScore(name,number,state));

}
}

موفق باشی
-------------------------------------
چون به دریا می توانی راه یافت
سوی یک قطره چرا باید شتافت

</blockquote></blockquote>
مرسي واقعا عالي بود