PDA

View Full Version : دست رسي به محتويات generic list



mohsen_namad
یک شنبه 01 اسفند 1389, 22:50 عصر
با سلام ، من نميدونم چطوري ميشه به اطلاعاتي كه تو generic list وارد ميشه دست رسي داشت. مثلا تو كد زير چطوري ميشه به productID=2 رو از ليست حذف كرد ؟



protected void b1_Click(object sender, EventArgs e)
{
if (Session["Basket"] == null)
{
List<Basket> lstBasket = new List<Basket>();
lstBasket.Add(new Basket()
{

ProductID = 1,
ProductName = "بستنی قیفی میهن با طعم هولو",
Price = 1000,
Quantity = 1
});
Session["Basket"] = lstBasket;
}
else
{
List<Basket> lstBasket = (List<Basket>)Session["Basket"];
lstBasket.Add(new Basket()
{
ProductID = 1,
ProductName = "بستنی قیفی میهن با طعم هولو",
Price = 1000,
Quantity = 1
});
Session["Basket"] = lstBasket;

}
GridView1.DataSource = (List<Basket>)Session["Basket"];
GridView1.DataBind();

}
public class Basket
{
public int ProductID { get; set; }
public string ProductName { get; set; }
public int Price { get; set; }
public int Quantity { get; set; }
}

mohsen_namad
دوشنبه 02 اسفند 1389, 21:17 عصر
دوستان خواهش مي كنم كسي ميتونه مشكل منو حل كنه . :ناراحت::ناراحت::ناراحت:

rainlover
دوشنبه 02 اسفند 1389, 23:06 عصر
یه راه ساده اینه:


foreach(Basket b in lstBasket)
{
if(b.ProductId == 2)
lstBasket.Remove(b)
//break;
}


اگه تو اون لیست فقط یک عنصر باید حذف شود کامنت رو بر میداری و break اجرا میشه. سعی کن این کد رو عینا کپی نکنی چون ممکنه اشکالات لپی داشته باشه ولی منطقش درسته.

mohsen_namad
سه شنبه 03 اسفند 1389, 08:56 صبح
سلام ببخشيد من اين كارو كردم ولي هيچ اتفاقي نميفته اينم همون كده:
پرو‍ژه رو تو ضميمه گذاشتم ميشه يه نگاهي بهش بندازيد.



protected void Button1_Click(object sender, EventArgs e)
{
List<Basket> lstBasket = new List<Basket>();
foreach(Basket b in lstBasket)
{
if (b.ProductID == 1)
lstBasket.Remove(b);
Session["Basket"] = lstBasket;
}

GridView2.DataSource = (List<Basket>)Session["Basket"];
GridView2.DataBind();
}

rainlover
سه شنبه 03 اسفند 1389, 10:56 صبح
سلام
الان سركارم و نمي تونم جواب بدم
ان شاءالله شب كه رفتم خونه جواب ميدم

rainlover
سه شنبه 03 اسفند 1389, 22:18 عصر
اینطور که من می بینم لیست تو کلا یک عضو داره. چون زیر یه رویداد گذاشتی و دائما اونو new می کنی و اجازه نمیدی که پر بشه که بعدش بخوای ازش حذف کنی
والا کماکان فکر میکنم همیون روشی که در بالا اشاره کردم درسته.
به عنوان نمونه این برنامه رو بگیر و نتیجشو خودت می بینی

rainlover
سه شنبه 03 اسفند 1389, 22:22 عصر
این هم از یه برنامه نمونه که همی چیز توش معلومه

mohsen_namad
چهارشنبه 04 اسفند 1389, 23:07 عصر
سلام با چيزايي كه شما گفتيد اين كارو كردم ولي حذف نمي كنه ؟



List<Basket> lstBasket = new List<Basket>();
lstBasket = (List<Basket>)Session["Basket"];

foreach (Basket b in lstBasket)
{

lstBasket.Remove(b.Price);
lstBasket.Remove(b.ProductID);
lstBasket.Remove(b.ProductName);
lstBasket.Remove(b.Quantity);
}

mmd2009
پنج شنبه 05 اسفند 1389, 01:23 صبح
با سلام.

اینم یک نمونه که واست نوشتم. امیدوارم کارتو راه بندازه



private void button2_Click(object sender, EventArgs e)
{
List<Basket> _Basket = new List<Basket>();

_Basket.Add(new Basket()
{
ProductID = 1,
ProductName = "chub"
});
_Basket.Add(new Basket()
{
ProductID = 2,
ProductName = "livan"
});
_Basket.Add(new Basket()
{
ProductID = 3,
ProductName = "chasb"
});

MessageBox.Show(_Basket.Count.ToString());

Basket b = _Basket.Where(id => id.ProductID == 2).Single();

_Basket.Remove(b);

MessageBox.Show(_Basket.Count.ToString());
}
public class Basket
{
public int ProductID { get; set; }
public string ProductName { get; set; }
}