Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public interface IOtherObjects;
- public abstract class MyObjects<T> where T : IOtherObjects
- {
- ...
- public List<T> ToList()
- {
- ...
- }
- }
- public class MyObjectsA : MyObjects<OtherObjectA> //(where OtherObjectA implements IOtherObjects)
- {
- }
- public class MyObjectsB : MyObjects<OtherObjectB> //(where OtherObjectB implements IOtherObjects)
- {
- }
- class B : A
- class C : A
- List<B> listB;
- List<C> listC;
- List<A> listA = listB.Cast<A>().Concat(listC.Cast<A>()).ToList()
- foreach(var myObject in myObjectsList)
- foreach(var obj in myObject.ToList())
- //do something
- // Original Code Snipped for Brevity - See Edit History if Req'd
- public List<OfType> TypedList<OfType>() where OfType : IOtherObjects
- {
- List<OfType> rtn = new List<OfType>();
- foreach (IOtherObjects o in _objects)
- {
- Type objType = o.GetType();
- Type reqType = typeof(OfType);
- if (objType == reqType)
- rtn.Add((OfType)o);
- }
- return rtn;
- }
- public abstract class MyObjects<T> where T : IOtherObjects
- {
- List<T> _objects = new List<T>();
- public List<T> ToList()
- {
- return _objects;
- }
- public List<IOtherObjects> ToBaseList()
- {
- List<IOtherObjects> rtn = new List<IOtherObjects>();
- foreach (IOtherObjects o in _objects)
- {
- rtn.Add(o);
- }
- return rtn;
- }
- }
- public abstract class MyObjects<T> where T : IOtherObjects
- {
- List<T> _objects = new List<T>();
- public List<IOtherObjects> Objects
- { get { return _objects; } }
- }
- #warning This won't compile, its for demo's sake.
- List<A>.Cast<B>().ToList<B>()
- interface IMyObjects : IEnumerable<IOtherObjects> {}
- abstract class MyObjects<T> : IMyObjects where T : IOtherObjects {}
- IEnumerable<IMyObjects> objs = ...;
- foreach (IMyObjects mo in objs) {
- foreach (IOtherObjects oo in mo) {
- Console.WriteLine(oo);
- }
- }
Add Comment
Please, Sign In to add comment