C#集合应用示例

本文介绍了如何使用字典在程序中管理文件扩展名与其关联的应用程序,包括添加、查找、更新和删除文件关联。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
  class Program
  {
    static void Main(string[] args)
    {
      // Create a new dictionary of strings, with string keys.
      //
      Dictionary<string, string> openWith =
        new Dictionary<string, string>();
      // Add some elements to the dictionary. There are no
      // duplicate keys, but some of the values are duplicates.
      openWith.Add("txt", "notepad.exe");
      openWith.Add("bmp", "paint.exe");
      openWith.Add("dib", "paint.exe");
      openWith.Add("rtf", "wordpad.exe");
      // The Add method throws an exception if the new key is
      // already in the dictionary.
      try
      {
        openWith.Add("txt", "winword.exe");
      }
      catch (ArgumentException)
      {
        Console.WriteLine("An element with Key = "txt" already exists.");
      }
      // The Item property is another name for the indexer, so you
      // can omit its name when accessing elements.
      Console.WriteLine("For key = "rtf", value = {0}.",
        openWith["rtf"]);
      // The indexer can be used to change the value associated
      // with a key.
      openWith["rtf"] = "winword.exe";
      Console.WriteLine("For key = "rtf", value = {0}.",
        openWith["rtf"]);
      // If a key does not exist, setting the indexer for that key
      // adds a new key/value pair.
      openWith["doc"] = "winword.exe";
      // The indexer throws an exception if the requested key is
      // not in the dictionary.
      try
      {
        Console.WriteLine("For key = "tif", value = {0}.",
          openWith["tif"]);
      }
      catch (KeyNotFoundException)
      {
        Console.WriteLine("Key = "tif" is not found.");
      }
      // When a program often has to try keys that turn out not to
      // be in the dictionary, TryGetValue can be a more efficient
      // way to retrieve values.
      string value = "";
      if (openWith.TryGetValue("tif", out value))
      {
        Console.WriteLine("For key = "tif", value = {0}.", value);
      }
      else
      {
        Console.WriteLine("Key = "tif" is not found.");
      }
      // ContainsKey can be used to test keys before inserting
      // them.
      if (!openWith.ContainsKey("ht"))
      {
        openWith.Add("ht", "hypertrm.exe");
        Console.WriteLine("Value added for key = "ht": {0}",
          openWith["ht"]);
      }
      // When you use foreach to enumerate dictionary elements,
      // the elements are retrieved as KeyValuePair objects.
      Console.WriteLine();
      foreach (KeyValuePair<string, string> kvp in openWith)
      {
        Console.WriteLine("Key = {0}, Value = {1}",
          kvp.Key, kvp.Value);
      }
      // To get the values alone, use the Values property.
      Dictionary<string, string>.ValueCollection valueColl =
        openWith.Values;
      // The elements of the ValueCollection are strongly typed
      // with the type that was specified for dictionary values.
      Console.WriteLine();
      foreach (string s in valueColl)
      {
        Console.WriteLine("Value = {0}", s);
      }
      // To get the keys alone, use the Keys property.
      Dictionary<string, string>.KeyCollection keyColl =
        openWith.Keys;
      // The elements of the KeyCollection are strongly typed
      // with the type that was specified for dictionary keys.
      Console.WriteLine();
      foreach (string s in keyColl)
      {
        Console.WriteLine("Key = {0}", s);
      }
      // Use the Remove method to remove a key/value pair.
      Console.WriteLine("nRemove("doc")");
      openWith.Remove("doc");
      if (!openWith.ContainsKey("doc"))
      {
        Console.WriteLine("Key "doc" is not found.");
      }
      Console.ReadKey();
    }
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值