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

c# – StartIndex不能小于零. – 尝试更改字符串时出错

发布时间:2020-12-15 03:47:15 所属栏目:百科 来源:网络整理
导读:我有以下C#代码: ArticleContent = ds1.Tables[0].Rows[i]["ArticleContent"].ToString();if (ArticleContent.Length 260){ ArticleContent = ArticleContent.Remove(ArticleContent.IndexOf('.',250)) + "...";} 这里的问题是我收到这个错误消息: StartIn
我有以下C#代码:
ArticleContent = ds1.Tables[0].Rows[i]["ArticleContent"].ToString();

if (ArticleContent.Length > 260)
{
   ArticleContent = ArticleContent.Remove(ArticleContent.IndexOf('.',250)) + "...";
}

这里的问题是我收到这个错误消息:

StartIndex cannot be less than zero.

为什么和如何解决它?

解决方法

你得到这个错误,因为没有”.索引250之后的字符,所以IndexOf返回-1.然后,您尝试删除位置-1的字符,它会给您看到的错误.

还要意识到,删除只能删除该位置的一个字符,而不是该位置之后的所有字符.我想你想要的是:

if (ArticleContent.Length > 260)
{
   int lastPeriod = ArticleContent.LastIndexOf('.');
   if(lastPeriod < 0)
      lastPeriod = 257;  // just replace the last three characters
   ArticleContent = ArticleContent.Substring(0,lastPeriod) + "...";
}

这将添加椭圆形到字符串,确保它不再是260个字符,如果可能,打破句子.

(编辑:李大同)

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

    推荐文章
      热点阅读