我有以下课程结构
public class OfferModelCollection
{
List<OfferModel> offers = new List<OfferModel>();
}
public class OfferModel
{
public int ID { get; set; }
public ProviderModel Provider { get; set; }
public ProviderType ProviderType { get; set; } //Enum
}
public class ProviderModel : BaseModel, IIdentity
{
public string ProviderCode { get; set; }
public string ProviderName { get; set; }
}
我现在正在尝试更新那些其Provider.ProviderCode与某个字符串值匹配的ProviderType
offers
。如何在LINQ中实现它?
这样的事情:
offersVM.Offers.Where(x=>x.Provider.ProviderCode.Contains("p10"))).ProviderType = ProviderType.Default;
答案 0 :(得分:1)
您必须使用foreach
(至少这是常见且最有效的方法)。
var toUpdate = offersVM.Offers.Where(x=> x.Provider.ProviderCode.Contains("p10"));
foreach(var x in toUpdate)
x.ProviderType = ProviderType.Default;
使用LIN Q 查询数据源,而不是修改它!
答案 1 :(得分:0)
使用foreach
foreach (var item in offersVM.Offers.Where(x=>x.Provider.ProviderCode.Contains("p10")))
{
item.ProviderType = ProviderType.Default;
}
Linq用于访问不变异的