// Copyright (c) Microsoft Corporation. All rights reserved. See License.txt in the project root for license information. using System.Collections.Generic; namespace System.Web.Mvc { internal static class ValueProviderUtil { public static bool CollectionContainsPrefix(IEnumerable collection, string prefix) { foreach (string key in collection) { if (key != null) { if (prefix.Length == 0) { return true; // shortcut - non-null key matches empty prefix } if (key.StartsWith(prefix, StringComparison.OrdinalIgnoreCase)) { if (key.Length == prefix.Length) { return true; // exact match } else { switch (key[prefix.Length]) { case '.': // known separator characters case '[': return true; } } } } } return false; // nothing found } } }