C# 向列表中添加新对象无效
我正在尝试将一个新的C# 向列表中添加新对象无效,c#,C#,我正在尝试将一个新的OldFlatFile添加到OldFlatFileList中,它可以工作,但不能添加新的。我看不到错误,也不知道下面的代码是否有问题 OldFlatFileList计数与添加前后相同: var selectedPackage = FlatFileHelper.GetSelectedPackage(OldFlatFileList); var primaryFeature = new PrimaryFeatures(){ DataTypeCode = "abc"
OldFlatFile
添加到OldFlatFileList
中,它可以工作,但不能添加新的。我看不到错误,也不知道下面的代码是否有问题
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 OldFlatFileList
{
获取{返回会话[SystemConstant.OldFlatFileListKey]作为列表;}
设置{Session[SystemConstant.OldFlatFileListKey]=value;}
}
公共类OldFlatFile:列表
{}
OldFlatFileList.ToList()
创建列表的新实例(其中将包含原始列表中项目的副本)。然后将新对象添加到新列表中,但不在任何变量中保存对新列表的引用。因此,带有添加项的新列表将由垃圾收集器简单地收集。原始列表将保持不变(因为您没有向其中添加项目)
因此,您不能将项添加到IEnumerable
类型的变量(它只支持枚举),我建议您将OldFlatFileList
属性类型更改为List
,或IList
或IColdCollection
。然后简单地打电话:
OldFlatFileList.Add(new OldFlatFile { ... });
这将修改您的原始列表
public class OldFlatFile : List<OldFlatFileEntry>
{}
OldFlatFileList.Add(new OldFlatFile { ... });