代码改变世界

常用辅助方法收集

  Jeffrey Zhao  阅读(5373)  评论(43编辑  收藏  举报

在项目里经常会出现一些常用的,好用的扩展方法,因此也想到把它收集起来。原本打算放在gist.github上,不过似乎那里管理功能较为薄弱,因此只适合零碎的代码片断,不适合长期地维护一些代码。而放在MSDN Code Gallary上又嫌较为简单,不成一个完整的示例——自然更别说是作为开源项目放在CodePlex上了。思来想去,还是放在博客上较为合适。

如果您有什么好的辅助方法,也可以告诉我,希望可以成为一套丰富的辅助方法,简化我们的开发生活。

字典相关

public static class DictionaryExtensions
{
    public static TDictionary CopyFrom<TDictionary, TKey, TValue>(
        this TDictionary source, 
        IDictionary<TKey, TValue> copy)
        where TDictionary : IDictionary<TKey, TValue>
    {
        foreach (var pair in copy)
        {
            source.Add(pair.Key, pair.Value);
        }

        return source;
    }

    public static TDictionary CopyFrom<TDictionary, TKey, TValue>(
        this TDictionary source, 
        IDictionary<TKey, TValue> copy, 
        IEnumerable<TKey> keys)
        where TDictionary : IDictionary<TKey, TValue>
    {
        foreach (var key in keys)
        {
            source.Add(key, copy[key]);
        }

        return source;
    }

    public static TDictionary RemoveKeys<TDictionary, TKey, TValue>(
        this TDictionary source, 
        IEnumerable<TKey> keys)
        where TDictionary : IDictionary<TKey, TValue>
    {
        foreach (var key in keys)
        {
            source.Remove(key);
        }

        return source;
    }

    public static IDictionary<TKey, TValue> RemoveKeys<TKey, TValue>(
        this IDictionary<TKey, TValue> source, 
        IEnumerable<TKey> keys)
    {
        foreach (var key in keys)
        {
            source.Remove(key);
        }

        return source;
    }
}

枚举相关

字符串相关

其他

AttachDataExtensions

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示