我创建了一个类的列表对象,然后更新它的值,它的值不更新请帮助我这里是我的代码
public class LocationData
{
public int LocId { get; set; }
public string LocatinName { get; set; }
public int ControlCount { get; set; }
public Nullable<short> KeyType { get; set; }
public Nullable<short> Financial_Reporting { get; set; }
public Nullable<short> FraudRisk { get; set; }
public Nullable<short> FinancialControl { get; set; }
public Nullable<short> ELC { get; set; }
}
var locList = location.Select(a =>
new LocationData { LocatinName = a.Location, LocId = a.LocID });
Run Code Online (Sandbox Code Playgroud)
之后,我正在尝试更新此值:
locList.Where(a => a.LocId == 7).ToList()
.ForEach(b => b.ControlCount = b.ControlCount + 1);
Run Code Online (Sandbox Code Playgroud)
但没有更新我也尝试这个但没有更新
(from loc in locList select loc).ToList().ForEach((loc) =>
{
loc.ControlCount = loc.ControlCount + 1;
});
Run Code Online (Sandbox Code Playgroud)
那是因为你lacList声明时实际上并没有实现任何物体.它只是一个查询定义(因为延迟了LINQ执行),所以每次使用它时都会LocationDate创建新项目.
ToList()声明时调用lacList它会起作用:
var locList= location.Select(a => new LocationData { LocatinName = a.Location, LocId = a.LocID }).ToList();
Run Code Online (Sandbox Code Playgroud)
说实话,我不明白为什么你使用List<T>.ForEach方法而不是od foreach循环.您必须实现new List<T>以使用Where源集合上的过滤器集调用该方法.使用时您不必这样做foreach:
foreach(var item in locList.Where(a => a.LocID == 7))
{
item.ControlCount += 1;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
302 次 |
| 最近记录: |