加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 计数以linq开头

发布时间:2020-12-15 23:43:50 所属栏目:百科 来源:网络整理
导读:所以我有一个关于如何计算 linq中的字符串开头的问题.让我解释一些测试用例 测试案例#1 var target="test";var source="test2"; 输出应为4 测试案例#2 var target="te";var source="test2"; 输出应为2 测试案例#3: var target="tet";var source="test2"; 输
所以我有一个关于如何计算 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.因为源不以target开头

所以我想出了这个功能:

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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读