コンテナー内でコンテナーを表現したいので、次のクラス構造を作成しました。
public class ContainerLib<T>
{
/// <summary>
/// Generic container type
/// </summary>
public T Container { get; set; }
/// <summary>
/// Container type
/// </summary>
public Type ContainerType {
get { return ContainerType; }
set { value = typeof (T); }
}
/// <summary>
/// ContainerLib enum
/// May change to IList
/// </summary>
public IList<ContainerLib<T>> Containers { get; set; }
}
/// <summary>
/// Video container
/// </summary>
public class Container
{
/// <summary>
/// Container ID
/// </summary>
public int Id { get; set; }
public string Name { get; set; }
/// <summary>
/// Details about the physical location of this container
/// </summary>
public LocationDefinition LocationDefinition { get; set; }
/// <summary>
/// Type of container - {layout, perspective, source
/// </summary>
public string ContainerType { get; set; }
/// <summary>
/// List of containers
/// </summary>
public IList<ContainerLib<Container>> Containers { get; set; }
}
これを実装する方法に少し行き詰まっています...これを正しく行っている場合:
var containerLib = new ContainerLib<Container>
{
Container = new Container
{
Id = 1,
LocationDefinition = new LocationDefinition
{
WidthPixels = 100,
HeightPixels = 100,
NumColumns = 10,
NumRows = 10,
TopLeftX = 0,
TopLeftY = 0
},
ContainerType = "Layout"
}
};
containerLib.Containers = new List<ContainerLib<Container>>
{
// build nested structure here ../../../../
};
したがって、データを構造に追加してから、それを反復処理したいと思います。
を使用する効率的な方法を見つけましたDictionary
が、それは私が探しているものではありません。
追加した
public IList<ContainerLib<Container>> Containers { get; set; }
に、そしてそれを行うことで、もうContainer
必要なのかどうか疑問に思っていますか?ContainerLib<T>
よろしくお願いします。