试图打印字符串的前250个字符,但得到argumentoutofrangeexception "错误
本文关键字:argumentoutofrangeexception quot 错误 字符串 打印 字符 250个 | 更新日期: 2023-09-27 18:07:44
我将LINQ结果绑定到ListView,并尝试仅从"摘要"列打印前250个字符,但当我尝试使用Substring时,我得到错误:
系统。Index和length必须指向字符串中的一个位置。参数名称:长度
导致错误的代码是:
<%#:Eval("Synopsis").ToString().Substring(0,250)%>
如果我删除ToString和Substring,错误消失,但打印整个摘要。我做错了什么?
当您的开始索引或长度超出字符串长度范围时,您将获得ArgumentOutOfRangeException
异常。在您的情况下,我会说字符串很可能已经少于250个字符。您可能想要这样的内容:
<%#:Eval("Synopsis").ToString().Length > 250 ? Eval("Synopsis").ToString().Substring(0,250) : Eval("Synopsis").ToString()%>
这意味着概要长度小于250个字符。这可以通过检查字符串的长度是否大于250并减少请求的长度来轻松修复。我不熟悉LINQ,但这里有一个伪代码的解决方案:
var length_of_request;
if length of synopsis < 250 then:
length_of_request = length of synopsis
else:
length_of_request = 250
然后调用SubString
, length_of_request
作为第二个参数