---
title: GroupContainer
summary: API reference for GroupContainer.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-15
library: SAIF.Framework.Common.Files
reference_type: package
---

# GroupContainer

`GroupContainer` extends `SegmentGroup` with an explicit header/trailer segment pair and a member-only `Segments` collection that excludes the group's own control (header/trailer) segments ([BR-033](../../business-rules.md#br-033-control-segments-excluded-from-member-segments-collections)). It is the common base for `FunctionalGroup`, `TransactionSet`, `HierarchialTransaction`, and `HierarchialLevel`, each of which adds its own typed header/trailer segment properties on top of this shared shape.

## Purpose
- Provides `HeaderSegment`/`TrailerSegment`, the raw control segments (e.g. GS/GE, ST/SE) that delimit this group, populated by `EdiGroupParser` when constructing the concrete group type.
- Provides `Segments`, the member segments belonging to this group with control segments filtered out ([BR-033](../../business-rules.md#br-033-control-segments-excluded-from-member-segments-collections)), distinct from the raw `List<IEdiSegment>` membership inherited from `SegmentGroup` which includes the control segments.

## Context
- Namespace: `SAIF.Common.Files.Edi`
- Assembly/package: `SAIF.Framework.Common.Files`
- Base class: `SegmentGroup`
- Also derives (transitively) from `List<IEdiSegment>` (framework-standard collection base)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| HeaderSegment | `public IEdiSegment HeaderSegment { get; internal set; }` | The raw control segment that opens this group (e.g. the GS segment for a `FunctionalGroup`, the ST segment for a `TransactionSet`). |
| TrailerSegment | `public IEdiSegment TrailerSegment { get; internal set; }` | The raw control segment that closes this group (e.g. the GE segment for a `FunctionalGroup`, the SE segment for a `TransactionSet`). |
| Segments | `public IEnumerable<IEdiSegment> Segments { get; internal set; }` | The group's member segments with header/trailer control segments excluded ([BR-033](../../business-rules.md#br-033-control-segments-excluded-from-member-segments-collections)); initialized to an empty list by the constructor and populated by `EdiGroupParser`. |

## Inherited public members

Members in this section are inherited from `SegmentGroup` in `SAIF.Framework.Common.Files`. They are available on this type through inheritance.

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| SegmentGroupId | `public string SegmentGroupId { get; set; }` | The segment tag that this group was delimited by during parsing. | `SAIF.Framework.Common.Files` — `SegmentGroup` |
| Index | `public int Index { get; set; }` | The sequential ordinal assigned to this group instance among its sibling groups. | `SAIF.Framework.Common.Files` — `SegmentGroup` |
| Key | `public string Key { get; set; }` | The control-number value that uniquely identifies this group occurrence ([BR-034](../../business-rules.md#br-034-group-keys-derived-from-control-number-elements)). | `SAIF.Framework.Common.Files` — `SegmentGroup` |
| Level | `public int Level { get; set; }` | The nesting depth of this group, defaulted to `0`. | `SAIF.Framework.Common.Files` — `SegmentGroup` |

## Constraints and usage notes
- `SegmentGroup` itself derives from the framework-standard `List<IEdiSegment>`; that raw-list membership includes control segments, whereas this type's own `Segments` property deliberately excludes them ([BR-033](../../business-rules.md#br-033-control-segments-excluded-from-member-segments-collections)).

## Sources
- Common\SAIF.Common.Files\Edi\GroupContainer.cs
