Unsafe SPObject.Name == <string> comparison
Description
Depending on the case, SPObject.Name string based comparison is quite unsafe and might lead to the potential issues. In case of loop the result is performance degradation.
The following properties are checked:
- SPPersistedObject.Name
- SPContentType.Name
- PageLayout.Name
- SPListItem.Name
- TaxonomyItem.Name (perform Group and Term checks)
- SPWeb.Name
- SPPrincipal.Name
var session = new TaxonomySession(site);
var termStore = session.TermStores["Company"];
var group = termStore.Groups["HR"];
var termSet = group.TermSets["Review"];
var term = termSet.Terms["Year 2012"];
// wrong
if (group.Name != "HR")
{
// wrong
if (term.Name != "Review")
{
// Do stuff
}
}
Resolution
- Use Object.ID instead or other key property
- Git rid of string comparison in loop
Links
No links are provided.