PDA

View Full Version : مبتدی: بازگرداندن و حذف یک متغیر



hamid911
جمعه 17 شهریور 1391, 13:29 عصر
سلام .
من تازه c# رو شروع کردم پس ممنون میشم جواب سوالم رو بدید . خیلی فوریه ...
چطور میشه همزمان چندتا point رو برگردوند .
من مثلا 6 point ایجاد کردم و میخوام اونها رو برای بررسی های دیگه همزمان برگردونم . این امکان وجود داره ؟!

یک سوال دیگه هم اینه که چطور یک point رو وقتی بررسی کردم از لیست pointهای موجودم حذف کنم .
تو c# این عملها چطورین ؟!
خواهش میکنم سریع جواب بدین چون خیلی فوری هستش ...

the king
جمعه 17 شهریور 1391, 15:14 عصر
سلام .
من تازه c# رو شروع کردم پس ممنون میشم جواب سوالم رو بدید . خیلی فوریه ...
چطور میشه همزمان چندتا point رو برگردوند .
من مثلا 6 point ایجاد کردم و میخوام اونها رو برای بررسی های دیگه همزمان برگردونم . این امکان وجود داره ؟!

منظورتون از point همون System.Drawing.Point ئه؟
آرایه یا لیستی از اون point ها یا هر چیز دیگری بسازید و برگردونید :

private Point[] YourMethod()
{
return new Point[] { new Point(0, 0), new Point(1, 2), new Point(3, 4), new Point(10, 10) };
}



private List<Point> YourMethod()
{
return new List<Point> { new Point(0, 0), new Point(1, 2), new Point(3, 4), new Point(10, 10) };
}




یک سوال دیگه هم اینه که چطور یک point رو وقتی بررسی کردم از لیست pointهای موجودم حذف کنم .
تو c# این عملها چطورین ؟!
خواهش میکنم سریع جواب بدین چون خیلی فوری هستش ...
اگر لیست ساخته باشید، برای حذف کردن یک عنصر متد مناسب رو داره.
فرضا حذف کردن عنصر سوم (اندیس 2 لیست)

List<Point> a = YourMethod();
a.RemoveAt(2);


حذف کردن عنصری از لیست که point اش (4 ,3) است :

List<Point> a = YourMethod();
a.Remove(new Point(3, 4));


فقط فراموش نکنید که اگر داخل حلقه ای که لیست رو بررسی می کنه تعداد عناصر لیست رو تغییر می دهید (اضافه می کنید یا حذف می کنید)
هر شیوه ای قابل اجرا نیست. فرضا اگر عناصری که X شان از 0 بزرگتر است را حذف می کنید همچین شیوه هایی نادرسته :

List<Point> a = YourMethod();
foreach (Point p in a)
{
if (p.X > 0)
{
a.Remove(p);
}
}



List<Point> a = YourMethod();
for (int i = 0; i < a.Count; i++)
{
if (a[i].X > 0)
{
a.RemoveAt(i);
}
}


یک نمونه شیوه صحیح اینطوری یه :

List<Point> a = YourMethod();
for (int i = 0; i < a.Count; i++)
{
if (a[i].X > 0)
{
a.RemoveAt(i);
i--;
}
}