令人惊讶的是,以下调用似乎不记得对该字段所做的更改。
private void Foo(IEnumerable<Blopp> blopps)
{
foreach (Blopp blopp in blopps)
blopp.SomeField = PREFIX + blopp.SomeField;
String test = blopps.First().SomeField;
}
使用 LINQ to data 获取数组时,测试变量缺少前缀。我需要评估IEnumerable并将其设为List以使对字段的更改保持不变。为什么会这样?我希望程序能够识别该字段稍后使用并对其进行评估。
private void Foo(IEnumerable<Blopp> _blopps)
{
List<Blopp> blopps = _blopps.ToList();
foreach (Blopp blopp in blopps)
blopp.SomeField = PREFIX + blopp.SomeField;
String test = blopps.First().SomeField;
}