PDA

View Full Version : سوال: حذف مقادیر خالی یک آرایه متنی



mohammad_118
یک شنبه 21 شهریور 1389, 01:24 صبح
سلام من یه آرایه متنی دارم مثلا [5]strname میخوام ببینم چطوری میشه مقادیر null اون را از آخر حذف کرد مثالا اگه [5]strname ما دو از آخر خالی بود (null) بود اونو تبدیل کنیم به [3]strname خلاصه اینطوری بگم که مقادیر خالی اون رو از آخر کلا حذف کنیم .ممنون

MEhdi Sobhani
یک شنبه 21 شهریور 1389, 01:37 صبح
سلام من یه آرایه متنی دارم مثلا [5]strname میخوام ببینم چطوری میشه مقادیر null اون را از آخر حذف کرد مثالا اگه [5]strname ما دو از آخر خالی بود (null) بود اونو تبدیل کنیم به [3]strname خلاصه اینطوری بگم که مقادیر خالی اون رو از آخر کلا حذف کنیم .ممنون
سلام
اگر یه آرایه معمولی از رشته ها هست ، یعنی اینطوری تعریفش کردید


string[] strname=new string[5]

راهی نداره و باید یه آرایه موقت تعریف کنید و اعضایی رو که میخواید داخل اون بریزید و بعد دوباره این آرایه رو برابر اون قرار بدید .
اگر از نوع array هست ، فکر میکنم دستورش


RemoveAt(Index)

باشه .

mohammad_118
یک شنبه 21 شهریور 1389, 02:26 صبح
من آرایه رو اینطوری ساختم و مقدار دهی کردم :


string[] files = newstring[] { @labelweek.Text, @labelday.Text, @labelmont.Text, @labelyear.Text, @label1.Text, @label2.Text, @label3.Text };

mmd2009
یک شنبه 21 شهریور 1389, 02:46 صبح
با سلام

کد زیر رو برات نوشتم. نیازی به یک ارایه دیگه نیست در چنین مواقعی که شما قصد دارید فضای خالی اخر رو حذف بکنید.



string[] m = new string[] { "mojtaba", "", "dinarvand", "", "" };
int j = 0;
for (int i = m.Length - 1; i > 0; i--)
{
MessageBox.Show(i.ToString());
if (m.GetValue(i).ToString() == "")
{
j++;

}
else
{
break;
}

}

Array.Resize(ref m, m.Length - j);


foreach (string a in m)
{
listBox1.Items.Add(a);
}

MessageBox.Show(m.Length.ToString());

MEhdi Sobhani
یک شنبه 21 شهریور 1389, 04:16 صبح
با سلام

کد زیر رو برات نوشتم. نیازی به یک ارایه دیگه نیست در چنین مواقعی که شما قصد دارید فضای خالی اخر رو حذف بکنید.



string[] m = new string[] { "mojtaba", "", "dinarvand", "", "" };
int j = 0;
for (int i = m.Length - 1; i > 0; i--)
{
MessageBox.Show(i.ToString());
if (m.GetValue(i).ToString() == "")
{
j++;

}
else
{
break;
}

}

Array.Resize(ref m, m.Length - j);


foreach (string a in m)
{
listBox1.Items.Add(a);
}

MessageBox.Show(m.Length.ToString());

سلام
ممنون از راهنماییتون
من این رو نمیدونستم و فکر می کردم در سی شارپ چیزی مشابه ReDim Preserve در وی بی وجود نداره ، در واقع این کار مشابه Redim Preserve در وی بی هست ، درسته ؟

mmd2009
یک شنبه 21 شهریور 1389, 11:53 صبح
کار Redim تغییر در ابعاد ارایه می باشد. پس می توان گفت همانند Resize در Array می باشد