我怎樣才能在LINQ的做一個更新如何執行使用LINQ或λ?(C#,Asp.net中的LINQ,拉姆達)
我的代碼是
基本上在車的更新集合中,有一個稱爲數量的項目,當用戶填充該項目時將填充該項目。
所以我正在閱讀Grid項目並更新Quantity屬性。
但我確定通過linq或lambda必須有更好的方法來做同樣的事情。
請幫
在此先感謝
我怎樣才能在LINQ的做一個更新如何執行使用LINQ或λ?(C#,Asp.net中的LINQ,拉姆達)
我的代碼是
基本上在車的更新集合中,有一個稱爲數量的項目,當用戶填充該項目時將填充該項目。
所以我正在閱讀Grid項目並更新Quantity屬性。
但我確定通過linq或lambda必須有更好的方法來做同樣的事情。
請幫
在此先感謝
嗯,你可以用foreach
循環更換一次for
循環,也可能使用該做內部相同的,但最終LINQ是查詢語法(因此Q),而不是突變語法,並且嘗試通過匿名方法(/ lambda)表示更新通常不是非常有利的。
需要注意的是.NET 4.0引入了Expression
節點,允許突變更好的支持,但是C#編譯器不會增加對他們的支援,Expression
lambda表達式仍僅限於查詢(至少,通過語言)。
總之:也許堅持你有什麼。你可能在這裏添加一些LINQ,但它會從根本上改變代碼的方式,它可以用於某些查詢,所以我沒有看到好處。
試試這個:
int interator = 0;
List<Cart> objNewCartItems = (List<Cart>)Session["CartItems"];
objNewCartItems.ForEach(i => i.Quantity = GetCartQuantity(interator++));
Session["CartItems"] = objNewCartItems;
Response.Redirect("ItemListing.aspx", false);
private int GetCartQuantity(int interator)
{
if ((objNewCartItems != null) && (objNewCartItems.Count > 0))
{
Cart c = new Cart();
TextBox t = (TextBox)dgShoppingCart.Rows[interator].FindControl("txtQuantity");
c.Quantity = (t.Text == string.Empty? (int?)null: Convert.ToInt32(t.Text));
return c.Quantity;
}
}