2

なぜだろう!適用できません

これは私のコードです:

  for (int i = 0; i < rowcol.GetLength(0); i++)
            {
                for (int j = 0; j < rowcol[i].GetLength(0); j++)
                {

                     var top = !((rowcol[i-1][j])) ? rowcol[i-1][j] : '';
                    var bottom = !(rowcol[i+1][j]) ? rowcol[i+1][j] : '';
                    var left = !(rowcol[i][j-1]) ? rowcol[i][j-1] : '';
                    var right = !(rowcol[i][j+1]) ? rowcol[i][j+1] : '';


                }
            }

テキストファイルから値を読み取っているギザギザの配列があります。演算子でエラーが発生しました! string には適用できませんが、i と j は int です。はい、rowcol は textfile から文字列を読み取っています。

完全なコードが必要かどうか教えてください。助けていただければ幸いです

4

3 に答える 3

6

問題は、rowcol[i-1][j] が文字列であり、! 文字列には適用できません。同じことが 4 行それぞれに当てはまります。

編集:文字列が null または空でないことを確認することが目標の場合は、代わりに次のことを試してください。

var top = !(String.isNullOrEmpty(rowcol[i - 1][j])) ? rowcol[i - 1][j] : '';

など、または、文字列が null で空ではないことがわかっている場合は、

var top = (rowcol[i - 1][j]) != null) ? rowcol[i - 1][j] : '';
于 2013-08-11T01:24:25.540 に答える
2

試す:

for (int i = 0; i < rowcol.GetLength(0); i++)
{
    for (int j = 0; j < rowcol[i].GetLength(0); j++)
    {

         var top = !(rowcol[i-1][j]=="") ? rowcol[i-1][j] : '';
        var bottom = !(rowcol[i+1][j]=="") ? rowcol[i+1][j] : '';
        var left = !(rowcol[i][j-1]=="") ? rowcol[i][j-1] : '';
        var right = !(rowcol[i][j+1]=="") ? rowcol[i][j+1] : '';
    }
}

または、

for (int i = 0; i < rowcol.GetLength(0); i++)
{
    for (int j = 0; j < rowcol[i].GetLength(0); j++)
    {
        var top = rowcol[i-1][j]!="" ? rowcol[i-1][j] : '';
        var bottom = rowcol[i+1][j]!="" ? rowcol[i+1][j] : '';
        var left = rowcol[i][j-1]!="" ? rowcol[i][j-1] : '';
        var right = rowcol[i][j+1]!="" ? rowcol[i][j+1] : '';
    }
}
于 2013-08-11T01:29:22.043 に答える