Using an Extension Method to check if an item exists in a SharePoint collection
Posted
Monday, March 3, 2008 10:13 AM
by
CoreyRoth
As I have mentioned before, one of my biggest complaints about SharePoint is that none of the collections in the SharePoint API have any way to determine if an item exists. Extension Methods offer a slightly more elegant way to do this, although the underlying code still violated multiple best practice rules. Take a look at this example using the SPFileCollection.
public static bool Contains(this SPFileCollection fileCollection, string index)
{
try
{
SPFile testFile = fileCollection[index];
return true;
}
catch (SPException e)
{
return false;
}
}
If you're not familiar with Extension Methods yet, they are an addition in C# 3.0 that allow you to add methods to existing classes without having to inherit from them. You prefix the first parameter with the keyword this followed by a type to specify what type you are extending. You can put your extension method in any class you want. Inside, the method, you see the typical way of checking to see if something exists in a SharePoint collection: try/catch. The syntax for using the extension method is below.
bool fileExists = fileCollection.Contains("SomeFile");
Extension methods are quite powerful and I think they can provide an excellent way to make many tasks easier and cleaner inside the SharePoint API.