using System.Collections.Generic;
public static void Main()
List<IYourEntity> lstYourEntitiesModifiedSince = GetAllModifiedSince(DateTime.UtcNow);
foreach (var item in lstYourEntitiesModifiedSince)
var myItem = item as YourEntity1;
Console.WriteLine(string.Format("{0}: {1}", myItem.Id, myItem.YourEntityName));
List<IMyEntity> lstMyEntitiesModifiedSince = lstYourEntitiesModifiedSince.ToMyEntityList();
foreach (var item in lstMyEntitiesModifiedSince)
var myItem = item as MyEntity1;
Console.WriteLine(string.Format("{0}: {1}", myItem.Id, myItem.MyEntityName));
public static List<IYourEntity> GetAllModifiedSince(DateTime modifiedSince)
List<IYourEntity> yourEntityList = new List<IYourEntity>();
yourEntityList.Add(new YourEntity1()
{Id = 1, YourEntityName = "Charlie"});
yourEntityList.Add(new YourEntity1()
{Id = 2, YourEntityName = "Sarah"});
return yourEntityList as List<IYourEntity>;
public interface IYourEntity
public interface IMyEntity
public class YourEntity1 : IYourEntity, IConvertToMyEntity<YourEntity1, MyEntity1>
public string YourEntityName
public MyEntity1 ToMyEntity(YourEntity1 yourEntity)
{Id = yourEntity.Id, MyEntityName = yourEntity.YourEntityName, CreatedOn = DateTime.UtcNow};
public List<MyEntity1> ToMyEntityList(List<YourEntity1> lstYourEntities)
return lstYourEntities.ConvertAll(q => ToMyEntity(q));
public class MyEntity1 : IMyEntity
public string MyEntityName
public DateTime CreatedOn
public interface IConvertToMyEntity<TYourEntity, TMyEntity>
where TYourEntity : class, IYourEntity, new()
where TMyEntity : class, IMyEntity, new()
TMyEntity ToMyEntity(TYourEntity yourEntity);
public static class ExtensionMethods
private static IMyEntity ToMyEntity(this IYourEntity yourEntity)
public static List<IMyEntity> ToMyEntityList(this List<IYourEntity> lstYourEntities)
return lstYourEntities.ConvertAll(q => q.ToMyEntity());