为什么最近实现了String.StartsWith(char),而不是String.Contains(char)?

bud*_*udi 0 c# string .net-core

String.StartsWith(char)String.EndsWith(char)C#7.0 .NET Core 2.0 中新实现.

为什么String.Contains(char)没有实施?

我通常会听到String.Contains(char)自己使用创建扩展的常见论点String.IndexOf(c) != -1.但我不喜欢创建简单的扩展,特别是如果我打算为了可读性而创建一个扩展,这就是我认为这些新的重载是为了(以及为什么我批准了这些更改:)).

小智 7

System.Linq.Enumerable静态类中已经包含了通用的Contains功能,适用于任意的IEnumerable<T>,包括IEnumerable<char>string实现.

换句话说,它已经很久以前就已经实现了.只是不要忘记using System.Linq;.

  • 请注意,如果你实际上有一个代码库需要在任何频率的`String`上调用`.Contains`,那么你可能仍然会提供自己的扩展,因为通用实现会相当慢.(这也是为什么你不会使用`.irstOrDefault()=='c'` /`.LastOrDefault()=='c'`来获取`.StartsWith` /`.EndsWith`的语义,即使你*可以*.) (4认同)