随笔 - 2146  文章 - 19 评论 - 11846 阅读 - 1267万


通过 CollectionsUtil 创建或包装的 "键/值对" 类(实现 IDictionary 的), 可以忽略 Key 的大小写.

主要成员:
/* 静态方法 */
CollectionsUtil.CreateCaseInsensitiveHashtable();  //建立或包装 Hashtable 等, 可初始化容量
CollectionsUtil.CreateCaseInsensitiveSortedList(); //建立有序的哈希表 SortedList


创建忽略大小写的 Hashtable:
protected void Button1_Click(object sender, EventArgs e)
{
    Hashtable hash = CollectionsUtil.CreateCaseInsensitiveHashtable(); //这就建立了一个忽略大小写的哈希表

    hash["KEY1"] = 123;
    int n = (int)hash["key1"];    //123
    TextBox1.Text = n.ToString();

    try { hash.Add("Key1", 456); }
    catch (Exception err) { Response.Write(err.Message); } //已添加项。字典中的关键字:“KEY1”所添加的关键字:“Key1” 
}


创建忽略大小写的 SortedList:
protected void Button1_Click(object sender, EventArgs e)
{
    SortedList sl = CollectionsUtil.CreateCaseInsensitiveSortedList(); //这就建立了一个忽略大小写的 SortedList

    sl["KEY1"] = 123;
    TextBox1.Text = sl["key1"].ToString(); //123

    try { sl.Add("Key1", 456); }
    catch (Exception err) { Response.Write(err.Message); } //已添加项。字典中的关键字:“KEY1”所添加的关键字:“Key1” 
}


包装一个 Hashtable 为忽略大小写:
protected void Button1_Click(object sender, EventArgs e)
{
    Hashtable hash = new Hashtable();
    hash.Add("KEY1", "aaa");
    hash.Add("KEY2", "bbb");
    hash.Add("KEY3", "ccc");

    bool b1 = hash.Contains("KEY1"); //True
    bool b2 = hash.Contains("key1"); //False

    hash = CollectionsUtil.CreateCaseInsensitiveHashtable(hash);

    bool b3 = hash.Contains("key1"); //True

    TextBox1.Text = string.Concat(b1, "\n", b2, "\n", b3);
}

posted on   万一  阅读(966)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
历史上的今天:
2010-01-08 WinAPI: CopyFileEx
2010-01-08 一句话复制整个文件夹(当然包括嵌套文件夹) - 回复 "张哆哆" 的问题
2009-01-08 提取网页中的所有链接、点击第 n 个链接 - 回复 "刘丽" 的问题
2008-01-08 Delphi 中的 XMLDocument 类详解(21) - 暂停
2008-01-08 Delphi 中的 XMLDocument 类详解(20) - 动态建立 XMLDocument 对象


点击右上角即可分享
微信分享提示