using System.Collections.Generic;
public static void Main()
var counters = new Dictionary<string, ICounter>();
counters.Add("cntr1", new Counter1());
counters.Add("cntr2", new Counter2());
counters.Add("cntr3", null);
var cf = counters.Where(c => c.Value != null).ToDictionary(c => c.Key, c => c.Value.GetSummary());
foreach (var keyValuePair in cf.ToList()) {
Console.WriteLine(keyValuePair.Value);
internal interface ICounter {
internal class Counter1 : ICounter {
public string GetSummary() {
internal class Counter2 : ICounter {
public string GetSummary() {