This question already has an answer here:
Class.Class vs Namespace.Class for top level general use class libraries?
What you have are two different things.
You have an internal class with 3 nested private classes
In your second scenario
You have 3 internal independent classes with no nesting.
If the classes should only be used within
StructuralCase use the first example, otherwise if the classes are independent and have no relationship then the namespace is the way forward.
I would just use Namespace, because you don't all the overhead of a class.
A class has more structure, variables, and methods, and offers layers of inheritance, but if you don't need them, don't use Class.
Generally, you want to use a
namespace, if only because it enables
using statements - otherwise you have to refer to the class by all nested classes (except inside the parent class itself, of course). Thus in case 1, outside reference would have to say
StructuralCase.Structure s = ...
using StructuralCase; // ... Structure s = ...
Functionally the only real reason to make a nested class is
internalfor some reason)
structused for results of a specific query)