CalbucciLib.ExtensionsGalore, .NET 中内置类型和类的扩展的100s

分享于 

14分钟阅读

GitHub

  繁體 雙語
100s of Extensions for built-in types and classes in .NET.
  • 源代码名称:CalbucciLib.ExtensionsGalore
  • 源代码网址:http://www.github.com/calbucci/CalbucciLib.ExtensionsGalore
  • CalbucciLib.ExtensionsGalore源代码文档
  • CalbucciLib.ExtensionsGalore源代码下载
  • Git URL:
    git://www.github.com/calbucci/CalbucciLib.ExtensionsGalore.git
    Git Clone代码到本地:
    git clone http://www.github.com/calbucci/CalbucciLib.ExtensionsGalore
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/calbucci/CalbucciLib.ExtensionsGalore
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    CalbucciLib.ExtensionsGalore

    ExtensionsGalore是扩展许多常见类型和类的库,以提供快速和方便地访问web和移动开发的常见场景。 换句话说,它可以帮助你编写更少的代码行,并在应用程序中更。

    在盒子里

    • 全面的DeepCopy功能
    • 用于日期日期的数十亿扩展,这些日期的日期与我的日期一样。
    • 在多种格式( CSV,Tab,Json,Textarea等) 中编码/解码字符串
    • 语言内容:char。isVowel/char。isconsonant。音译。字形映射。删除重音等。
    • 数字:文字字符串。罗马数字。复数等。
    • 对TimeZoneInfo的Olson时区扩展
    • 验证:电子邮件,Url,Twitter screenname,电话号码,日期,时间等。

    NuGet

    https://www.nuget.org/packages/CalbucciLib.ExtensionsGalore/

    原理

    • 使常见案例易于使用。
    • 如果可以能,对"意外"例子使用常见的( 比如 ,"空白"尽可以能空"
    • 在少数情况下,它使用英语语言,并且已经针对我们进行了优化。
    • 假设解析&验证来自用户输入,这意味着对于支持空格和变量的处理来说,这并不太严格。

    最佳实践

    很多常用的代码都来自StackOverflow或者通用实现,在这里我的代码很整齐,但是大部分代码是我在过去年积累的代码。 在approprivate中,我将链接与实现的引用或者实现源代码的引用或者导致该实现的信息源关联。

    插件扩展文档

    最好的解释是源代码:)。 我在大多数方法中添加了摘要元数据。 但是,下面简要概述一下可用的方法:

    字节 [ ]

    • frombase62/tobase62: 将字节 [] 转换为基 62编码字符串( Base 62更适合于URL中的内容,因为它不包含+/或者= )。
    • fromBase64/toBase64: 只是因为它调用转换。tobase64string/frombase64string
    • fromhexencoding/tohexencoding: 将字节 [] 转换为十六进制编码字符串。
    • IsEqual: 如果两个字节 [] 在内容中相同,则比较。

    字节字节

    • fromhex/toHex: 将单个字节从/转换成十六进制编码值。
    • CountBits: 返回位数

    字符

    • 英镑 IsVowel/英镑 IsConsonant:: 表示是否为辅音的元音,支持重音和大多数语言。
    • IsASCIILetter: z 或者z
    • IsASCIILetterOrDigit: z,z 或者 0 -9
    • 音译 : 返回字母的拉丁文字母版本。 这不是一个很好的实现,需要工作。
    • GlyphMap: 将字符转换为最接近的拉丁文字母表视觉表示。
    • GlyphMapAndTransliterate: 将字符转换为最接近拉丁字母的视觉表示,并将它的音译。

    颜色

    • ToColor: 将字符串转换为颜色对象( 支持命名颜色。html/css语法)
    • IsAccessibilityContrast: 比较两种颜色之间的对比并验证它通过WCAG标准。
    • GetContrastRatio: 获得两种颜色之间的对比度。 0表示无对比度( black-on-black ),21表示最大对比度( black-on-white )
    • IsColorBlindAccessible: 还没有实现。
    • FromHSL: 使用HSL创建颜色对象。
    • ToHsl: 返回颜色的HSL分量。
    • tohexcolor/tohtmlcolor: 返回颜色的十六进制版本( 比如。 ) fecdcd"还有"#fecdcd"
    • changesaturation/changebrightness: 还没有实现。

    日期日期

    • ParseTime: 解析任何语言中的时间字符串( 比如。 ) 12p","17: 54","03: 23 A.M."
    • fromunixtime/ToUnixTime: 转换为unix时间编号
    • ToRelativeTime: TimeSpan的书面版本( 比如。 ) 3分钟前"或者或或者"7 天前"
    • IsBetween: 检查日期是否在两个其他日期之间
    • CompareTo CompareTo: 比较 DateTime,达到所需精度的。
    • ElapsedToNow: 返回日期之间的TimeSpan ( 始终为正的TimeSpan )
    • 月:
      • GetFirstDayOfMonth: 返回一个月的第一天( 支持 DayOfWeek )
      • GetFirstDayOfPreviousMonth: 返回上一个月的第一天
      • GetFirstDayOfNextMonth: 返回下个月的第一天
      • GetFirstMondayOfMonth: 返回一个月的第一个星期一
      • GetFirstSundayOfMonth: 返回一个月的第一个星期日
      • :返回月的最后一天( 支持 DayOfWeek )
    • :的:
      • GetFirstDayOfQuarter: 返回季度的第一天( 支持 DayOfWeek )
      • GetLastDayOfQuarter: 返回季度的最后一天( 支持 DayOfWeek )
    • 上/下一个:
      • GetPrevious: 返回前面的DayOfWeek。 如果与这里日期相同,则返回一个星期前。
      • getprevioussunday/getpreviousmonday: 返回日历的上周日/星期一。
      • GetNext:: 返回下一个DayOfWeek值。 如果与这里日期相同,则返回一个星期。
      • getnextsunday/getnextmonday: 返回下一个星期日或者星期一。
    • GetAgeInYears: 以年为单位返回年龄,忽略时间成分。
    • GetWeekOfYear: 返回一年的周数。
    • /截断:
      • 按周四舍五入:按特定意义( 年。月。日。小时。分或者秒) 四舍五入。
      • Truncate: 将日期截断为特定意义( 年,月,日,小时,分钟或者秒)

    Int

    • fromhex/toHex: 从/到十六进制编码字符串转换。
    • CountBits: 返回位数。
    • ToRomanNumeral: 返回罗马数字。
    • ToRoundedMemorySize: 返回表示内存语法( 1024 ="1k"的字符串
    • 用单数或者复数单词的复数形式返回一个字符串,使用单数或者复数形式。
    • 英镑 ToLiteral: 返回一个英文字符串,该数字为( 1025 =>",")。

    List,列出 <T>

    • ToCSVLine <>: 将 List 转换为逗号分隔行。
    • ToTabSeparatedLine>> : 将 List 转换为制表符分隔行。
    • 随机化: 返回列表的随机版本
    • DeepCopy: 创建 List的深层副本( 递归地复制项目)
    • GetPagination: 从列表中返回项目的"页面"。
    • GetRandomItem: 从列表中获取单个随机项。
    • IsEqualUnordered: 比较两个将它们视为集合( 例如,忽略顺序)的列表
    • IsEqualOrdered: 比较两个列表中相同的项目和顺序。

    • tobase62/frombase62: 转换为基 62编码的/
    • CountBits: 返回位数。
    • ToRoundMemorySize: 返回表示内存语法( 1024 ="1k"的字符串
    • 英镑 ToLiteral: 返回一个英文字符串,该数字为( 1025 =>",")。

    对象

    • DeepCopy: 创建这个对象的深层副本,递归复制每个子对象。 支持来自 System.Collections,System.Collections.Generic 和 System.Collections.Concurrent的所有类型。 自定义类和匿名类型一起使用。

    • CountBits: 返回位数。

    字符串

    • GenerateLoremIpsum: 生成ipsum的N 个单词。
    • CreateTRTD: 将字符串的array 转换为tr行
    • HtmlEncode: 将字符串编码为html安全。
    • HtmlEncodeTextArea: 将一个字符串编码为安全使用 inside 元素。
    • HtmlDecode: 解码html编码的字符串。
    • urlencode/urldecode: 编码/解码要在URL中使用的字符串。
    • escape escape/unescape::
    • escapecstring/unescapecstring: 将字符串转换为在 C/C++/C#/Java(?) 中表示的字符串
    • EscapeJson: 转义要使用的字符串( JSON字符串)。
    • EscapeStringFormat: 转义. NET String.Format 中使用的字符串。
    • EscapeCSV: 转义作为CSV字段使用的字符串。
    • :转义一个字符串,在 XML CDATA节中使用。
    • EscapeTabDelimited: 转义一个字符串,将它的用作制表符分隔的文件中的字段。
    • UnescapeCSVField: 显示一个csv转义字符串。
    • UnescapeTabField: Unescape Tab-delimited-escaped字符串。
    • 内容测试:
    • 英镑/hasuppercase: 指示字符串是否至少有一个小写字母或者大写字母。
    • ContainsAny: 指示字符串是否至少包含一个作为参数传递的字符串/字符。
    • startswithany/endswithany: 指示字符串是否以作为参数传递的字符串/字符的至少一个字符串开始/结束。
    • CompareNonWhitespace: 比较字符串的内容,忽略空白(" 27t"=="m27z"
    • ( Func )/lastindexof ( Func ): 查找一个字符的第一个/最后一个索引,该字符是 MATCHES。
    • indexofwhitespace/lastindexofwhitespace: 查找字符串中的第一个/最后一个 whitepsace/控件。
    • indexofnonwhitespace/lastindexofnonwhitespace: 查找字符串中的第一个/最后一个非空白/非空白。
    • indexofletterordigit/lastindexofletterordigit: 查找字符串中的第一个/最后一个字母或者数字。
    • indexofnonletterordigit/lastindexofnonletterordigit: 查找字符串中的第一个/最后一个非字母和非数字。
    • 修剪:
    • Trim(Func)/TrimStart(Func)/TrimEnd(Func): 使用谓词函数修剪字符串。
    • TrimLower: 修剪转换为小写。
    • TrimInBetween: 修剪前导&尾部空白,并将连续空格修剪为单个空格字符。
    • 截断:
    • 截断: 截断字符串最大长度并修剪它。
    • TruncateEllipsis: 截断字符串并追加省略号。
    • TruncatePhrase: 在单词边界( 如果可能的话) 中截断一个字符串并追加省略号。
    • TruncateTrimLink: 截断并修剪一个链接以便显示(" http://www.twitter.com/calbucci?#"=>"twitter.com/calbucci")"
    • 音译: ( 不是一个好的实现) 转换非拉丁文字符( 比如。 希伯来语,阿拉伯语,希腊文)。
    • GlyphMap: 将字符转换为最接近的拉丁文字母表视觉表示。
    • GlyphMapAndTransliterate: 将字符转换为最接近拉丁字母的视觉表示,并将它的音译。
    • CapitalizeFirstWord: 大写句子的第一个单词。
    • CapitalizeAllWords: 大写句子中的所有单词。
    • GetFirstWord: 返回句子的第一个单词。
    • GetLastWord: 返回句子的最后一个单词。
    • 转换:
    • ToBool: 将" 1","true","是",等等 转换为 true,否则为 false。
    • ToColor: 将任何十六进制颜色或者HTML颜色字符串转换为颜色对象。
    • ToBytesFromBase64: 将 Base 64 字符串转换为字节 array。
    • ToBytesFromBase62: 将基 62字符串转换为字节 array。
    • ToBytesFromHex: 将十六进制编码的字符串转换为字节 array。
    • ToInt/ToLong/ToDouble/ToDecimal/ToFloat: 将字符串转换为比更灵活的字符串,如果无法解析,则返回 0.
    • ToEnum(T): 将字符串转换为 enum 类型。
    • 将一个字符串转换为一个字段值的List,将一个字符串转换为一个字段。
    • 将一个字符串转换为一个字段值的List,将一个字符串转换为一行。

    • ToOlsonTimeZone: 返回奥尔森时区格式的最佳 MATCH。
    • ToOlsonTimeZones: 返回奥尔森时区格式的所有 MATCHES。
    • FromOlsonToTimeZoneId: 返回来自奥尔森时区的时区标识。
    • FromOlsonToTimeZoneInfo: 从Olson时区返回 TimeZoneInfo。

    UInt

    • CountBits: 返回位数。
    • 英镑 ToLiteral: 返回一个英文字符串,该数字为( 1025 =>",")。

    • CountBits: 返回位数。
    • 英镑 ToLiteral: 返回一个英文字符串,该数字为( 1025 =>",")。

    验证

    • IsValidEmail: 这是一个有效的电子邮件地址
    • 为多个方案( HTTP,MAILTO,FTP,等等 ) 提供一个链接,绝对或者 relative 值
    • IsValidDomain: 它是有效的域名。
    • IsValidUSPhoneNumber: 这是一个有效的美国电话号码。
    • :这是有效的电话号码( 因为它没有很好的解释,因为它不考虑许多国际的细微差别)
    • IsValidBase64String: 这是有效的Base 64 字符串。
    • IsValidHTMLColor: 这是有效的html/css颜色
    • IsValidTwitterUsername: 这是有效的Twitter 用户名
    • IsValidMailToAddress: 这是有效的mailto: 地址
    • IsValidDomainTLD: 它是一个有效的顶级域
    • IsValidGuid: 这是有效的Guid。
    • IsValidIPv4: 这是有效的IP v.4.
    • IsValidIPv6: 这是有效的IP v.6.
    • IsValidIP: 有效的IP地址(。4 或者 v.6 )
    • IsValidTime: 它是有效的时间字符串( 任何语言)
    • IsValidDate: 有效日期

    贡献者


    ext    type  类型  extensions  classes