While initializing WF4 activities we can do something like this:
Sequence s = new Sequence()
{
Activities = {
new If() ...,
new WriteLine() ...,
}
}
Note that Sequence.Activities is a Collection<Activity> but it can be initialized without the new Collection().
How can I emulate this behaviour on my Collection<T> properties?
Any collection that has an
Add()method and implementsIEnumerablecan be initialized this way. For details, refer to Object and Collection Initializers for C#. (The lack of the newCollection<T>call is due to an object initializer, and the ability to add the items inline is due to the collection initializer.)The compiler will automatically call the
Add()method on your class with the items within the collection initialization block.As an example, here is a very simple piece of code to demonstrate: