First example. This program shows how the Clear method works. After we call Clear, there are always zero elements in a Dictionary. It erases the internals.
using static System.Console;
static void Main()
// Create a small dictionary.// ... Add 2 keys.
var lookup = new Dictionary<string, int>();
lookup["cat"] = 10;
lookup["dog"] = 20;
// Write the count.
// Clear the dictionary and write its new count.
Benchmark, clear. A Dictionary is complex. Some actions may be slower than you think. The Count and Clear members both seem simple. But the Count property is much faster than Clear.
Version 2 This code uses Clear but only when there are 1 or more elements in the Dictionary. So it can avoid calling Clear.
Result Tested in .NET 5, version 2 is faster. It is best to call Count before calling Clear.
const int _max = 100000000;
static void Main()
var dict = new Dictionary<string, string>();
var s1 = Stopwatch.StartNew();
// Version 1: use Clear.for (int i = 0; i < _max; i++)
var s2 = Stopwatch.StartNew();
// Version 2: use Clear if needed.for (int i = 0; i < _max; i++)
if (dict.Count > 0)
Console.WriteLine(((double)(s1.Elapsed.TotalMilliseconds * 1000000) / _max).ToString("0.00 ns"));
Console.WriteLine(((double)(s2.Elapsed.TotalMilliseconds * 1000000) / _max).ToString("0.00 ns"));
}1.88 ns Always call Clear
1.04 ns Call Clear if Count > 0
A summary. Often we need to erase all the elements in a C# Dictionary. This allows us to reuse an existing Dictionary. The Clear() method helps here.
Dot Net Perls is a collection of tested code examples. Pages are continually updated to stay current, with code correctness a top priority.
Sam Allen is passionate about computer languages. In the past, his work has been recommended by Apple and Microsoft and he has studied computers at a selective university in the United States.
This page was last updated on May 25, 2021 (simplify).