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();
}

它适用于我拥有的测试用例。但我的问题是,能不能用一种更简单的方法来做到这一点?

Count startswith with linq

if (!source.StartsWith(target)) return 0;
return target.Length;

你可以试试

return source.StartsWith(target, StringComparison.OrdinalIgnoreCase) ? target.Length : 0;