void CreateCachedCast(string cast) { CachedCast cachedCast = new CachedCast(cast); for (int i = 0; i < castInfo.Length; i++) { if (castInfo[i].name.Equals(cast, StringComparison.OrdinalIgnoreCase)) { cachedCast.nameMatches.Add(castInfo[i]); } } if (cachedCast.nameMatches.Count == 0) { for (int i = 0; i < castInfo.Length; i++) { if (castInfo[i].fullName.Equals(cast, StringComparison.OrdinalIgnoreCase)) { cachedCast.nameMatches.Add(castInfo[i]); break; } } } cachedCasts.Add(cast, cachedCast); }
static void CreateCachedCast(string castType) { CachedCast cachedCast = new CachedCast(castType); for (int i = 0; i < castInfo.Length; i++) { if (castInfo[i].name.Equals(castType, StringComparison.OrdinalIgnoreCase)) { cachedCast.nameMatches.Add(castInfo[i]); } } //If no name matches, resort to fullname matches //TODO both fors are the same... if (cachedCast.nameMatches.Count == 0) { for (int i = 0; i < castInfo.Length; i++) { if (castInfo[i].fullName.Equals(castType, StringComparison.OrdinalIgnoreCase)) { cachedCast.nameMatches.Add(castInfo[i]); } } } cachedCasts.Add(castType, cachedCast); }
Type GetCastType(string cast) { CachedCast cachedCast = cachedCasts[cast]; if (cachedCast.nameMatches.Count == 0) { throw new ExplicitCastNotFoundException(cast); } if (cachedCast.nameMatches.Count > 1) { throw new AmbiguousExplicitCastException(cast, cachedCast.nameMatches.ConvertAll(x => x.type).ToArray()); } return(cachedCast.nameMatches[0].type); }