// OLD STYLE:
public static void ClearSegments(IChannel branch)
{
IList<BranchSegment> segments = branch.HydroNetwork.BranchSegments;
IList<BranchSegmentBoundary> segmentBoundaries = branch.HydroNetwork.BranchSegmentBoundaries;
IList<BranchSegmentCenter> segmentCenters = branch.HydroNetwork.BranchSegmentCenters;
// First remove the existing segments
var toBeRemoved = new List<BranchSegment>();
foreach (BranchSegment branchSegment in branch.BranchSegments)
{
// update the branch features that are linked to this branch
toBeRemoved.Add(branchSegment);
}
foreach (BranchSegment branchSegment in toBeRemoved)
{
segments.Remove(branchSegment);
segmentBoundaries.Remove(branchSegment.BranchSegmentBoundaryStart);
segmentCenters.Remove(branchSegment.BranchSegmentCenter);
}
if (toBeRemoved.Count > 0)
{
segmentBoundaries.Remove(toBeRemoved[toBeRemoved.Count - 1].BranchSegmentBoundaryEnd);
}
branch.BranchSegments.Clear();
}
// NEW STYLE:
public static void ClearSegments(IChannel branch)
{
branch.BranchSegments.Clear();
branch.BranchSegmentBoundaries.Clear();
branch.BranchSegmentCenters.Clear();
}
|