c# 运算符 !不能申请

标签 c# asp.net operators jagged-arrays

我不知道为什么!不能申请

这是我的代码:

  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] : '';


                }
            }

我有一个锯齿状数组,我正在从文本文件中读取值。我有运算符(operator)错误!不能应用于字符串,但 i 和 j 是 int,是的,rowcol 正在从文本文件中读取字符串。

如果您需要完整代码,请告诉我。感谢帮助,谢谢

最佳答案

问题是 rowcol[i-1][j] 是一个字符串,而 !不能应用于字符串。这同样适用于您的四行中的每一行。

编辑:如果您的目标是检查字符串不为 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] : '';

关于c# 运算符 !不能申请,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18167877/

相关文章:

operators - SML 选项 Monad(绑定(bind)运算符不起作用)

c# - 在 C# 中对 boolean 值使用 &=

python - += 究竟是做什么的?

c# - System.AccessViolation 由于 Marshal.StructureToPtr

c# - 在代码隐藏中使用javascript变量分配C#变量值

asp.net - 为什么 `ardalis/CleanArchitecture` 引用 FastEndpoints 而不是它自己的 `ardalis/ApiEndpoints`

javascript - 阻止 HTML/Javascript 页面在初始化期间加载

c# - C# 中 JSON-RPC 客户端的示例代码

C# 事件处理程序

c# - 在 gridview 中不显示第一行