索引和长度必须引用字符串c#中的一个位置

本文关键字:位置 一个 字符串 引用 索引 | 更新日期: 2023-09-27 18:26:15

我正在C#中动态构建一个表,从数据库中提取值,并获取索引和长度。必须引用字符串异常中的一个位置。

以下是在上被踢出的代码行

cl.Text = totalMarginMonth.ToString().Substring(0,5);

totalMarginMonth等于41.3,当我得到错误时,它是一个十进制类型。我知道字符串的长度不是5,但大多数值的长度至少为5。我是否必须放一个if语句来读取传入的字符串的长度,然后再对其进行子字符串处理?

索引和长度必须引用字符串c#中的一个位置

只需将第二个值钳制为子字符串。

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 )
          );
相关文章: