Count startswith with linq
本文关键字:linq with startswith Count | 更新日期: 2023-09-27 18:13:55
所以我有一个关于如何在linq中计算字符串的开始的问题。让我用一些测试用例来解释
测试用例1
var target="test";
var source="test2";
输出应为4
测试案例#2
var target="te";
var source="test2";
输出应为2
测试案例#3:
var target="tet";
var source="test2";
输出应为0。因为源文件不以目标
开头所以我想出了这个函数:private int CountStartsWith(string source, string target)
{
if (!source.StartsWith(target))
return 0;
return source.ToCharArray()
.Zip(target.ToCharArray(), (s1, s2) => (s1 == s2))
.TakeWhile(match => match)
.Count();
}
它适用于我拥有的测试用例。但我的问题是,能不能用一种更简单的方法来做到这一点?
if (!source.StartsWith(target)) return 0;
return target.Length;
你可以试试
return source.StartsWith(target, StringComparison.OrdinalIgnoreCase) ? target.Length : 0;