private SearchResults tryFind(string name)
{
SearchResults results = new SearchResults();
results.Members = name.Split('.');
results.MemberIndex = 0;
if (results.Member == "this")
{
results.Found = true;
results.Lookup = toLookup(_source);
results.Value = _source;
}
else
{
tryFindFirst(results);
}
for (int index = 1; results.Found && index < results.Members.Length; ++index)
{
results.Lookup = toLookup(results.Value);
results.MemberIndex = index;
object value;
results.Found = results.Lookup.TryGetValue(results.Member, out value);
results.Value = value;
}
return results;
}