using System.Collections.Generic;
static List<Project> Projects = new List<Project> {
new Project { Id = 1, IdPlateforme = 1, IdSecteur = 1},
new Project { Id = 2, IdPlateforme = 1, IdSecteur = 2},
new Project { Id = 3, IdPlateforme = 1, IdSecteur = 4},
new Project { Id = 4, IdPlateforme = 3, IdSecteur = 1},
new Project { Id = 5, IdPlateforme = 3, IdSecteur = 2},
new Project { Id = 6, IdPlateforme = 3, IdSecteur = 4},
new Project { Id = 7, IdPlateforme = 2, IdSecteur = 1},
new Project { Id = 8, IdPlateforme = 2, IdSecteur = 2},
new Project { Id = 9, IdPlateforme = 2, IdSecteur = 4},
public static void Main()
var results = Projects.Select(x => new {x.Id, x.IdPlateforme, x.IdSecteur, IdPlateformeSecteur = SetIdPlatformeSecteur(x.IdPlateforme, x.IdSecteur)});
foreach(var r in results)
static Func<int, int, int> SetIdPlatformeSecteur = (p, s) =>
_ when p == 1 && s == 1 => 1,
_ when p == 1 && s == 2 => 2,
_ when p == 1 && s == 4 => 3,
_ when p == 3 && s == 1 => 4,
_ when p == 3 && s == 2 => 5,
_ when p == 3 && s == 4 => 6,
_ when p == 2 && s == 1 => 7,
_ when p == 2 && s == 2 => 8,
_ when p == 2 && s == 4 => 9,
_ => throw new ArgumentException(message: "Id combination not recognized", paramName: $"{p} {s}")
public int Id { get; set; }
public int IdPlateforme { get; set; }
public int IdSecteur { get; set; }