Generic IDictionary

IDictionary<TKey,TValue> defines the standard protocol for all key/value-based col- lections.

 
public interface IDictionary <TKey, TValue> :
     ICollection <KeyValuePair <TKey, TValue>>, IEnumerable
{
    bool ContainsKey (TKey key);
    bool TryGetValue (TKey key, out TValue value);
    void Add  (TKey key, TValue value);
    bool Remove (TKey key);
    
    TValue this [TKey key]  { get; set; }  // Main indexer - by key ICollection 
    <TKey> Keys { get; }  // Returns just keys 
    ICollection <TValue> Values { get; } // Returns just values
}

Enumerating directly over an IDictionary<TKey,TValue> returns a sequence of KeyValuePair structs:

 

public struct KeyValuePair <TKey, TValue>
{
    public TKey Key { get; }
    public TValue Value { get; }
}

Here's how to use it:

 
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;

class Sample
{
    public static void Main()
    {
        var d = new Dictionary<string, int>();

        d.Add("One", 1);
        d["Two"] = 2; // adds to dictionary 
        d["Two"] = 4;  // updates dictionary
        d["Three"] = 3;

        Console.WriteLine(d["Two"]);   
        Console.WriteLine(d.ContainsKey("One"));  // true (fast operation) 
        Console.WriteLine(d.ContainsValue(3));  // true (slow operation) 
        int val = 0;

        if (!d.TryGetValue("onE", out val)){
            Console.WriteLine("No value");  // "No val" (case sensitive)
        }
    }
}

The output:


4
True
True
No value
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.