我有三個類別:如何設置一個空的ICollection C#
private ICollection<FPTAssetClassAsset> wrassets;
private ICollection<FPTFundAsset> wrfunds;
private ICollection<FPTManagedStrategyAsset> wrstrats;
如果foreach循環返回0對象,集合沒有得到設置,因此無效。 當我將這個icollection(聯盟)添加到另一個icollection它失敗:「值不能爲空」,因爲icollection爲空,而不是空。我怎樣才能將這個集合設爲空?
循環:
public void GetWrapperAssets(FPT fpt)
{
foreach (var w in fpt.CouttsPositionSection.Wrappers
.Union(fpt.StandAloneSection.Wrappers)
.Union(fpt.BespokePropositionSection.Wrappers)
.Union(fpt.NonCouttsPositionSection.Wrappers)
)
{
foreach (var a in w.UnderlyingAssets.OfType<FPTManagedStrategyAsset>())
{
wrstrats.Add(a);
}
foreach (var a in w.UnderlyingAssets.OfType<FPTAssetClassAsset>())
{
wrassets.Add(a);
}
foreach (var a in w.UnderlyingAssets.OfType<FPTFundAsset>())
{
wrfunds.Add(a);
}
}
}
我們展示你的循環。另外,實例化集合在哪裏? –
初始化每一個=新集合<...>() – n8wrl
_「如果一個foreach循環返回0對象,集合不會被設置,因此爲空。」_我仍然沒有看到任何代碼實例化wrstrats,wrassets,所以即使你的循環執行,對'.Add'的調用仍然會拋出異常。 –