using System.Collections.Generic;
using System.Security.Cryptography.X509Certificates;
public partial class Hospitalization : ICommonDgData
public int ID { get; set; }
public long IDHospitalization { get; set; }
public int IDDiagnosis { get; set; }
public long IDParentRecord
return IDHospitalization;
public interface ICommonDgData
long IDParentRecord { get;}
public partial class Operation: ICommonDgData
public int ID { get; set; }
public long IDOperation { get; set; }
public int IDDiagnosis { get; set; }
public long IDParentRecord
public static List<Hospitalization> InitHospList()
List<Hospitalization> list = new List<Hospitalization>();
list.Add(new Hospitalization() { ID = 1, IDHospitalization = 11, IDDiagnosis = 10 });
list.Add(new Hospitalization() { ID = 2, IDHospitalization = 11, IDDiagnosis = 20 });
public static List<Operation> InitOperList()
List<Operation> list = new List<Operation>();
list.Add(new Operation() { ID = 1, IDOperation = 22, IDDiagnosis = 30 });
list.Add(new Operation() { ID = 2, IDOperation = 22, IDDiagnosis = 40 });
list.Add(new Operation() { ID = 7, IDOperation = 23, IDDiagnosis = 50 });
list.Add(new Operation() { ID = 3, IDOperation = 23, IDDiagnosis = 60 });
list.Add(new Operation() { ID = 10, IDOperation = 23, IDDiagnosis = 70 });
public static IOrderedEnumerable<T> GetOrderedOperationList<T>( List<T> src) where T: Operation
var listOrdered = src.OrderBy(x => x.ID);
public static IEnumerable<long> GetCommonInterParentIDList<T>(List<T> src) where T : ICommonDgData
.Select(x=>x.IDParentRecord);
static void Main(string[] args)
Console.WriteLine("======list======");
var listO = InitOperList();
Console.WriteLine("{0} {1} {2} {3}", x.ID, x.IDOperation, x.IDDiagnosis, x.IDParentRecord);
Console.WriteLine("======list======");
var listH = InitHospList();
Console.WriteLine("{0} {1} {2} {3}", x.ID, x.IDHospitalization, x.IDDiagnosis, x.IDParentRecord);
Console.WriteLine("======ordered======");
foreach (var x in GetOrderedOperationList(listO))
Console.WriteLine("{0} {1} {2} {3}", x.ID, x.IDOperation, x.IDDiagnosis, x.IDParentRecord);
Console.WriteLine("======list obtained from interface======");
foreach (var idparent in GetCommonInterParentIDList(listO))
Console.WriteLine("{0}", idparent);
Console.WriteLine("======list obtained from interface======");
foreach (var idparent in GetCommonInterParentIDList(listH))
Console.WriteLine("{0}", idparent);