温故知新——CSharp
关于
平时在工作学习中查找到的关于C#的小技巧,持续记录,温故知新。
技巧
- 使用
Parallel.For()或者Parallel.Foreach()提高循环的效率; - 使用
PLINQ.AsParallel()的语法来提高LINQ的运行效率,其中AsParallel()不表示一定会使用平行运算,其执行的数目会由1、2、4、8等增加,另外AsParallel()之后可以接上另一个方法WithExecutionMode(ParallelExecutionMode.ForceParallelism),表示要强制使用平行运算; - 在单元测试中,获取当前的执行路径方法:
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); - 当重新丢出
Exception时,请使用throw,而非throw ex用以保留call stack信息; - 避免
catch错误,却不做任何事情; - 在判断
string是否为空白时,避免使用与String.Empty或" "比较,改用String.Length = 0,效率更高; - 表示空字串时,避免使用" "改用使用
string.Empty,效能较佳; - 动态字串串接时(无法于当下串接所有内容),避免使用"+",改用
StringBuilder,效能较佳; -
string忽略大小写比较时,避免使用ToLower(),改用string.Compare(),效能较佳,用法如下:string.Compare(targetStringA,"target string B",true) == 0; - 静态字串串接时,利用”@”来输入多行文字及避免跳脱字元;
- 使用
string.Join()拼接字符串数组得到单个字符串; - C#哈希表
HashTable和Dictionary比较,添加数据时Hashtable快,频繁调用数据时Dictionary快。Dictionary<K,V>是泛型的,当K或V是值类型时,其速度远远超过Hashtable。
后记
小伙伴们发现不对的地方及时指出,一起写出更好地C#代码。