c# – 向List添加新对象不起作用

c# – 向List添加新对象不起作用,第1张

概述我正在尝试向OldFlatFileList添加一个新的OldFlatFile,但它不能添加新的OldFlatFile.我看不到错误,我不知道下面的代码是否有问题? OldFlatFileList计数与添加之前和之后相同: var selectedPackage = FlatFileHelper.GetSelectedPackage(OldFlatFileList); var primary 我正在尝试向oldFlatfileList添加一个新的oldFlatfile,但它不能添加新的oldFlatfile.我看不到错误,我不知道下面的代码是否有问题?

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添加新对象不起作用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1223783.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存