依赖System.Data.Entity.Design
包进行转换,而不是写几个正则去傻傻的匹配。
实测转换效果良好,可以识别people
, woman
, feet
等特殊单复数单词。
简单使用
单词转为单数形式
1 System.Data.Entity.Design.PluralizationServices.PluralizationService.CreateService(new CultureInfo("en" )).Singularize("英文单词" );
单词转为复数形式
1 System.Data.Entity.Design.PluralizationServices.PluralizationService.CreateService(new CultureInfo("en" )).Singularize("英文单词" );
dll下载地址 System.Data.Entity.Design.dll 下载地址
封装为类 若需频繁使用此类功能,可以考虑封装为一个类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 using System.Data.Entity.Design.PluralizationServices;using System.Globalization;namespace Handlers { public static class WordHandler { private static PluralizationService Service => _service ??= PluralizationService.CreateService(new CultureInfo("en" )); private static PluralizationService _service = null ; public static string ToSingular (string word ) { return Service.Singularize(word); } public static string ToPlural (string word ) { return Service.Pluralize(word); } } public class MultipleWords { public string Singular; public string Plural; public MultipleWords (string word ) { Singular = WordHandler.ToSingular(word); Plural = WordHandler.ToPlural(Singular); } public MultipleWords Set (string word ) { Singular = WordHandler.ToSingular(word); Plural = WordHandler.ToPlural(Singular); return this ; } } }
使用方法
1 2 3 4 5 6 var words = new MultipleWords("people" );Console.WriteLine(words.Singular); Console.WriteLine(words.Plural); words = new MultipleWords("company" ); Console.WriteLine(words.Singular); Console.WriteLine(words.Plural);