private bool SameArguments(Arguments arguments1, Arguments arguments2) { if (arguments1.Count() != arguments2.Count()) { return(false); } return(arguments1.All(arg1 => { var arg2 = arguments2.FirstOrDefault(x => x.Name == arg1.Name); if (arg2 == null) { return false; } return SameValue(arg1, arg2); })); }
public bool IsValidUsage(IEnumerable <ITokenHandler> handlers) { var actualArgs = handlers.OfType <Argument>(); if (actualArgs.Count() != Arguments.Count()) { return(false); } if (!Arguments.All(x => actualArgs.Contains(x))) { return(false); } var flags = handlers.Where(x => !(x is Argument)); return(flags.All(x => ValidFlags.Contains(x))); }