前几次我问了一个问题here“如何使用Linq和C#在集合中添加项目”
例如我有相同的集合:
List<Subscription> subscription = new List<Subscription>
{
new Subscription{Type = "Trial", Period = 30 },
new Subscription{Type = "Free", Period = 90 },
new Subscription{Type = "Paid", Period = 365 }
};
现在我想使用C#代码更新此列表中的项目。有可能吗?
答案 0 :(得分:1)
您创建了一个上下文管理器,例如dbManager
var subscription = dbManager.Subscriptions.Single(s => s.Type == "Free");
subscription.Period = 120;
dbManager.SaveChanges();
答案 1 :(得分:1)
您的订阅列表包含3个对3个订阅对象的引用。如果您更新该列表中的3个订阅对象中的任何一个(通过任何方式),则列表将引用更新的元素。
subscription.First(s => s.Period == 30).Trial = "new";
将更新订阅对象..列表不会更改,但它引用已更新的同一对象
答案 2 :(得分:0)
&lt; _InstanceName&gt; [ItemIndex]。&lt; _property&gt; = newValue
答案 3 :(得分:0)
要将列表中的第一项更新为新时段,您可以执行以下操作:
subscription[ 0 ].Period = 40;
答案 4 :(得分:0)
此外,如果您希望更新集合中的所有项目,您可以这样做,
subscription.ForEach(s => s.Period = 30);
答案 5 :(得分:0)
应该注意的是,如果Subscription是一种值类型,您需要执行以下操作:
Subscription updateMe = subscription[0];
updateMe.Period = 40;
subscription[0] = updateMe;
我还注意到集合名称通常是复数,因此列表应该命名为subscriptions
。但是,我认为,如果开发代码的开发人员使用不使用此类复数的语言的母语者,则此约定会失去其价值。