public static Acl FromSddl(string sddl) { Acl newAcl = new Acl(); string[] aceStrings = sddl.Split(new char[] { '(', ')' }); // it's split on ( and ), so we have blanks every other item for (int i = 1; i < aceStrings.Length; i++) { if ((i % 2) > 0) { newAcl._acl.Add(Ace.FromSddl(aceStrings[i])); } } return(newAcl); }