pri*_*kar 2 c# linq asp.net lambda
如何在Linq中进行更新
我的代码是
List<Cart> objNewCartItems = (List<Cart>)Session["CartItems"];
if ((objNewCartItems != null) && (objNewCartItems.Count > 0))
{
for (int i = 0; i < dgShoppingCart.Rows.Count; i++)
{
Cart c = new Cart();
TextBox t = (TextBox)dgShoppingCart.Rows[i].FindControl("txtQuantity");
c.Quantity = (t.Text == string.Empty? (int?)null: Convert.ToInt32(t.Text));
objNewCartItems[i].Quantity = c.Quantity;
}
}
Session["CartItems"] = objNewCartItems;
Response.Redirect("ItemListing.aspx", false);
Run Code Online (Sandbox Code Playgroud)
基本上在购物车集合中,有一个名为数量的项目将在用户填写时填充.
所以我正在阅读Grid项并更新Quantity属性.
但我相信通过linq或lambda必须有更好的方法来做同样的事情.
请帮忙
提前致谢
好吧,你可以用一个for循环替换一个循环foreach,或者可以在List<T>.ForEach内部使用相同的循环,但最终LINQ是一个查询语法(因此是Q),而不是一个变异语法,并且尝试通常不是非常有益通过匿名方法(/ lambda)表示更新.
请注意,.NET 4.0引入Expression了允许更好地支持变异的节点,但C#编译器不会为它们添加任何支持,因此Expressionlambdas仍然仅限于查询(至少通过语言).
简而言之:也许坚持你所拥有的.你可以在这里添加一些LINQ,但是它会以与对某些查询相同的方式从根本上改变代码,所以我没有看到它的好处.
| 归档时间: |
|
| 查看次数: |
4953 次 |
| 最近记录: |