oldFlatfileList计数与添加之前和之后相同:
var selectedPackage = FlatfileHelper.GetSelectedPackage(oldFlatfileList); var primaryFeature = new PrimaryFeatures(){ DataTypeCode = "abc" }; oldFlatfileList.ToList().Add( new oldFlatfile { new oldFlatfileEntry { informationFIElds = selectedPackage.informationFIElds,PrimaryFeatures = primaryFeature,SecondaryFeatures = null } });
private IEnumerable<oldFlatfile> oldFlatfileList { get { return Session[SystemConstant.oldFlatfileListKey] as List<oldFlatfile>; } set { Session[SystemConstant.oldFlatfileListKey] = value; } }
public class oldFlatfile : List<oldFlatfileEntry> {}解决方法 oldFlatfileList.ToList()创建列表的新实例(将具有原始列表中的项目副本).然后,您将新对象添加到该新列表,但不保存对任何变量中的新列表的引用.所以添加项目的新列表将由垃圾收集器收集.原始列表将保持不变(因为您没有添加项目).
因此,您无法将项目添加到IEnumerable< T>的变量中. type(它只支持枚举),我建议你将oldFlatfileList属性类型改为List< oldFlatfile>,或者IList< oldFlatfile>或ICollection< oldFlatfile>.然后简单地致电:
oldFlatfileList.Add(new oldFlatfile { ... });
这将修改您的原始列表.
总结以上是内存溢出为你收集整理的c# – 向List添加新对象不起作用全部内容,希望文章能够帮你解决c# – 向List添加新对象不起作用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)