using System;
using System.Collections.Generic;
namespace Netron.Diagramming.Core {
///
/// Describes the CollectionBase collection.
///
///
public interface ICollectionBase : ICollection, IList {
#region Events
///
/// Occurs when the collection is cleared.
///
event EventHandler OnClear;
///
/// Occurs when an item is added to the collection.
///
event EventHandler> OnItemAdded;
///
/// Occurs when en item is removed from the collection.
///
event EventHandler> OnItemRemoved;
#endregion
#region Properties
#endregion
#region Methods
///
/// Adds the range of items to the collection.
///
/// The items.
void AddRange(CollectionBase items);
///
/// Copies this instance.
///
///
CollectionBase Copy();
///
/// Creates a deep copy of this instance.
///
///
CollectionBase DeepCopy();
///
/// Uses the given predicate to test the existence of a certain item in the collection.
///
/// The predicate.
///
bool Exists(Predicate predicate);
///
/// Finds the specified predicate.
///
/// The predicate.
///
T Find(Predicate predicate);
///
/// Uses the given Action to act on the collection items
///
/// The action.
void ForEach(Action action);
ICollection RemoveAll(Predicate predicate);
///
/// Converts the collection to an array.
///
///
T[] ToArray();
///
/// Specific copy/paste utility function.
///
///
System.IO.MemoryStream ToStream();
///
/// Returns a string representation of the collection.
///
/// The format.
/// The format provider.
///
string ToString(string format, IFormatProvider formatProvider);
///
/// Returns a string representation of the collection.
///
///
string ToString();
///
/// Checks, using the given predicate, whether a certain property is true for all items in the collection.
///
/// The predicate.
///
bool TrueForAll(Predicate predicate);
#endregion
}
}