C# 在分割之后,我想对被分割字符串的长度设置一个条件

C# 在分割之后,我想对被分割字符串的长度设置一个条件,c#,C#,以上是我的说明书。把绳子分成5部分后。我想检查第一个拆分的字符串的长度是否大于12。如果是,则将其修剪为10个字符,并在字符串后面附加“.”(两个点)。 *但在修剪代码之后,它在myNew[1]、myNew[2]、myNew[3]、myNew[4]、myNew[5]的下面方法中给出了错误。 *错误是当前上下文中不存在名称myNew。 var myNew = myRegex1.Split(strTargetString); if ((myNew[1].Tri

以上是我的说明书。把绳子分成5部分后。我想检查第一个拆分的字符串的长度是否大于12。如果是,则将其修剪为10个字符,并在字符串后面附加“.”(两个点)。 *但在修剪代码之后,它在myNew[1]、myNew[2]、myNew[3]、myNew[4]、myNew[5]的下面方法中给出了错误。 *错误是当前上下文中不存在名称myNew。

var myNew = myRegex1.Split(strTargetString);
                    if ((myNew[1].Trim()).Length > 12)
                    {
                       myNew[1]= (myNew[1].Substring(0, 9))+"..";
                    }                        }
                    _model.Add(new ScoresModel()
                    {
                        NameTeam1 = (myNew[1].Trim()),
                        ScoreTeam1 = Convert.ToInt32(myNew[2].Trim()),
                        NameTeam2 = (myNew[3].Trim()),
                        ScoreTeam2 = Convert.ToInt32(myNew[4].Trim()),
                        Round = (myNew[5].Trim()).Substring(1, myNew[5].Length - 2),
                        URL = item.ItemLink
                    });
我想你想要这个:

_model.Add(new ScoresModel()
                    {
                        NameTeam1 = (myNew[1].Trim()),
                        ScoreTeam1 = Convert.ToInt32(myNew[2].Trim()),
                        NameTeam2 = (myNew[3].Trim()),
                        ScoreTeam2 = Convert.ToInt32(myNew[4].Trim()),
                        Round = (myNew[5].Trim()).Substring(1, myNew[5].Length - 2),
                        URL = item.ItemLink
                    });
试试这个:

var myNew = myRegex1.Split(strTargetString);
                    if ((myNew[0].Trim()).Length > 12)
                    {
                       myNew[0]= myNew[0].Substring(0, 10)+"..";
                    }   
_model.Add(new ScoresModel()
                    {
                        NameTeam1 = (myNew[0].Trim()),
                        ScoreTeam1 = Convert.ToInt32(myNew[1].Trim()),
                        NameTeam2 = (myNew[2].Trim()),
                        ScoreTeam2 = Convert.ToInt32(myNew[3].Trim()),
                        Round = (myNew[4].Trim()).Substring(1, myNew[4].Length - 2),
                        URL = item.ItemLink
                    });
拆分结果为0索引;)像这样,您不需要设置数组的第一个元素,只需要使用它


使用Trim测试字符串时要小心,如果以后不使用它(对于子字符串),如果字符串以空格开头,则可能会出现错误。

不是答案,但请记住数组索引从零开始。如果你的正则表达式把字符串分成5部分,索引从零开始,到四结束。我只是好奇:你认为括号的作用是什么?i、 e.
(myNew[1].Trim())
。似乎还有一个偏离范围的支架;也许我们缺少了比“您的变量不存在”更彻底的答案的重要上下文。我的代码使用从1到5的数组索引。只有在前面使用if语句块时才会发生错误。@DollyJain因此,您说数组从索引
1
开始,如果注释掉四行
if
条件,则所有操作都有效?您确定索引从1开始而不是从0开始吗?另外,我认为您的myNew[1]。子字符串(0,9)应该是myNew[1]。子字符串(0,10)
var myNew = myRegex1.Split(strTargetString);
_model.Add(new ScoresModel()
{
    NameTeam1 = myNew[0].Trim().Length > 12 ? myNew[0].Trim().Substring(0, 9)+".." : myNew[0].Trim(),
    ScoreTeam1 = Convert.ToInt32(myNew[1].Trim()),
    NameTeam2 = myNew[2].Trim(),
    ScoreTeam2 = Convert.ToInt32(myNew[3].Trim()),
    Round = myNew[4].Trim().Substring(1, myNew[4].Trim().Length - 2),
    URL = item.ItemLink
});