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