0
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
                    });

以上が私の仕様です。文字列を 5 つの部分に分割した後。最初に分割された文字列の長さが 12 を超えているかどうかをチェックします。そうであれば、10 文字に切り詰め、文字列の後ろに「..」(2 つのドット) を追加します。* しかし、コードをトリミングした後、myNew[1]、myNew[2]、myNew[3]、myNew[4]、myNew[5] の以下のメソッドでエラーが発生しています。※エラーはThe name myNew does not exist in current context.

_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
                    });
4

2 に答える 2

0

これを試して :

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
});

分割結果のインデックスは 0 です ;) このように、配列の最初の要素を設定せずに、そのまま使用します。

Trim を使用して文字列をテストするときは注意してください。後で (部分文字列に対して) 使用しない場合、文字列がスペースで始まるとエラーが発生する可能性があります。

于 2013-03-09T17:59:50.137 に答える
0

私はあなたがこれを望んでいると思います:

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
                    });
于 2013-03-09T17:51:53.890 に答える