我有一个ProductSearchResults集合,下面的方法打算在该集合中找到一个特定的产品并进行更新.我最终更新指向集合元素的对象而不是它自己的实际元素(我认为)
你能否告诉我如何正确地做到这一点,以便我更新集合中的实际产品
谢谢
public void UpdateProductInfo(ProductInfo product)
{
var productToUpdate = this.ProductSearchResults.Where(p => p.ID == product.ID).;
if (productUpdate.Count() > 0)
{
var toUpdate = productToUpdate.First<ProductInfo>();
toUpdate = product;
}
}
Run Code Online (Sandbox Code Playgroud)
Jam*_*iec 17
实际上,您所做的只是将对局部变量的引用更改toUpdate为指向传入的参数product.
当你这样做时,让我们退一步:
var toUpdate = productToUpdate.First<ProductInfo>();
Run Code Online (Sandbox Code Playgroud)
你引用了你的集合中的一个项目(ProductSearchResults).您现在可以愉快地更新其属性,ala:
toUpdate.ProductName = product.ProductName;
toUpdate.Price = product.Price;
//etc..
Run Code Online (Sandbox Code Playgroud)
但是,您无法更新集合中的itemn以指向您尝试的方式中的其他/新项目.您可以从集合中删除该itme,如果确实如此,则添加新的itme:
public void UpdateProductInfo(ProductInfo product)
{
var productToUpdate = this.ProductSearchResults.Where(p => p.ID == product.ID).;
if (productUpdate.Count() > 0)
{
var toUpdate = productToUpdate.First<ProductInfo>();
this.ProductSearchResults.Remove(toUpdate);
this.ProductSearchResults.Add(product);
}
}
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
19185 次 |
| 最近记录: |