索引和长度必须引用字符串c#中的一个位置
本文关键字:位置 一个 字符串 引用 索引 | 更新日期: 2023-09-27 18:26:15
我正在C#中动态构建一个表,从数据库中提取值,并获取索引和长度。必须引用字符串异常中的一个位置。
以下是在上被踢出的代码行
cl.Text = totalMarginMonth.ToString().Substring(0,5);
totalMarginMonth等于41.3,当我得到错误时,它是一个十进制类型。我知道字符串的长度不是5,但大多数值的长度至少为5。我是否必须放一个if语句来读取传入的字符串的长度,然后再对其进行子字符串处理?
只需将第二个值钳制为子字符串。
int len = Math.Min(totalMarginMonth.ToString().Length, 5);
c1.Text = totalMarginMonth.ToString().Substring(0, len);
编写一个可以在任何地方使用的扩展方法:
public static class StringExtensions
{
public static string Truncate( this string s , int maxLength )
{
if ( s == null ) throw new ArgumentNullException("s");
if ( maxLength < 0 ) throw new ArgumentOutOfRangeException("maxLength");
return s.Length <= maxLength ? s : s.Substring(0,maxLength);
}
}
那么这就是一个简单的问题:
string text = totalMarginMonth.ToString().Truncate(5);
不能将长度作为子字符串中的第二个值传入吗?
c1.Text = totalMarginMonth
.ToString()
.Substring( 0, Math.Min( totalMarginMonth.ToString().Length , 5 )
);