Validação fluente, validação diferente para cada item em uma lista no Asp.NET Core

Eu tenho tentado encontrar uma maneira de validar itens dentro de uma lista, cada um com diferentes regras de validação. Encontrei a validação Fluent, que é uma ótima biblioteca, mas não consigo encontrar uma maneira de fazer a validação de cada item individualmente. Eu tive uma idéia fraca desse segmento semelhante (Validar lista 2 usando validação fluente), mas não tenho certeza de como focar como quero.

Então, eu tenho esse modelo de exibição:

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

Isso contém uma lista de propriedades do Active Directory. Cada um representado por esta classe:

   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; }
}

O ponto é que, cada propriedade do AD tem restrições diferentes, então eu quero especificar regras diferentes para cada propriedade na lista de alguma forma 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
                        }
                  }
          )

    }
}

Alguma idéia de como abordar isso? desde já, obrigado.

questionAnswers(1)

yourAnswerToTheQuestion