#if UNITY_EDITOR using UnityEngine; using System.Collections.Generic; namespace O3DWB { public class CaseInsensitiveEntityNameMatchOperation : IEntityNameMatchOperation { #region Public Methods public List GetEntitiesWithMatchingNames(List namedEntities, string nameToMatch) { var foundEntities = new List(namedEntities.Count); nameToMatch = nameToMatch.ToLower(); List extactMatchEntities = namedEntities.FindAll(item => item.Name.ToLower() == nameToMatch); foundEntities.AddRange(extactMatchEntities); StorePartialMatches(foundEntities, namedEntities, nameToMatch); return foundEntities; } #endregion #region Private Methods private void StorePartialMatches(List destination, List namedEntities, string nameToMatch) { foreach (INamedEntity namedEntity in namedEntities) { string entityName = namedEntity.Name.ToLower(); if (entityName != nameToMatch) { if (entityName.Contains(nameToMatch)) destination.Add(namedEntity); } } } #endregion } } #endif