How to test for an empty generic.dictionary collection?

DEH picture DEH · Jan 18, 2010 · Viewed 42.3k times · Source

How do I test a generic dictionary object to see whether it is empty? I want to run some code as follows:

while (reportGraphs.MoveNext())
{
    reportGraph = (ReportGraph)reportGraphs.Current.Value;
    report.ContainsGraphs = true;
    break;
}

The reportGraph object is of type System.Collections.Generic.Dictionary When running this code then the reportGraphs dictionary is empty and MoveNext() immediately throws a NullReferenceException. I don't want to put a try-catch around the block if there is a more performant way of handling the empty collection.

Thanks.

Answer

Reed Copsey picture Reed Copsey · Jan 18, 2010

If it's a generic dictionary, you can just check Dictionary.Count. Count will be 0 if it's empty.

However, in your case, reportGraphs looks like it's an IEnumerator<T> - is there a reason your enumerating your collection by hand?