Validación fluida, validación diferente para cada elemento en una lista en Asp.NET Core

He estado tratando de encontrar una manera de validar elementos dentro de una lista, cada uno con diferentes reglas de validación. Encontré la validación fluida, que es una gran biblioteca, pero parece que no puedo encontrar una manera de validar cada elemento individualmente. Tengo una idea débil de este hilo similar (Valide la lista 2 usando una validación fluida), pero no estoy seguro de cómo enfocarlo como quiero.

Entonces tengo este modelo de vista:

 public class EditPersonalInfoViewModel
{
    public IList<Property> UserPropertyList { get; set; }
}

Contiene una lista de propiedades de Active Directory. Cada uno representado por esta clase:

   public class Property
{
    public string Name { get; set; }
    public UserProperties Value { get; set; }
    public string input { get; set; }
    public bool Unmodifiable  { get; set; }
    public string Type { get; set; }
}

El punto es que, cada propiedad AD tiene diferentes restricciones, por lo que quiero especificar diferentes reglas para cada propiedad en la lista de alguna manera como esta:

   public class ADPropertiesValidator : AbstractValidator<EditPersonalInfoViewModel>
{
    public ADPropertiesValidator()
    {
        RuleFor(p => p.UserPropetyList).Must((p,n) =>
         {
              for (int i = 0; i < n.Count; i++)
                  {
                     if ((n[i].Name.Equals("sAMAccountName"))
                        {
                          RuleFor(n.input ).NotEmpty()....
                        }
                     else if(...)
                        {
                      //More Rules
                        }
                  }
          )

    }
}

¿Alguna idea de cómo abordar esto? gracias por adelantado.

Respuestas a la pregunta(1)

Su respuesta a la pregunta