【问题标题】:How can i solve "0 " value try to get length value?我如何解决“0”值尝试获取长度值?
【发布时间】:2010-06-18 14:56:21
【问题描述】:

如果我尝试将 int 值添加到字符串长度的数组中,整个数据为“0”,为什么?又该如何解决呢?

  for (int j = 0; j < dTable.Columns.Count; j++)
                for (int i = 0; i < dTable.Rows.Count; i++)
                {

                    mycounter[i] = dTable.Rows[i][j].ToString().Length;
                }

它与 mycounter 无关,因为:

  string test = "";
           foreach(DataColumn dc in dTable.Columns)
                for (int i = 0; i < dTable.Rows.Count; i++)
                {
                   // MessageBox.Show(dTable.Rows[i][dc].ToString());
                    test = dTable.Rows[i][dc].ToString().Length.ToString();
                }

【问题讨论】:

  • 这对于有更多 C# 经验的人来说可能很明显......但我的第一个想法是:dTablemycounter 的数据类型是什么?您在问题中提供的信息越多,人们就能越好地帮助您。
  • mycounter 必须是 IEnumerable 的某个后代,例如 List
  • 我不确定您的更新意味着什么。您将 test 设置为最后一行的最后一列,然后....?
  • DataTable中存储了什么样的数据?
  • 所以在您的更新中,您的意思是说:当我检查测试时,该值始终为“0”。对吗?

标签: c# .net visual-studio visual-studio-2008


【解决方案1】:

在 mycounter[] 中,您将只有表格最后一列的值。 可能最后一列包含空字符串吗?

【讨论】:

    【解决方案2】:

    除了@Orsol 所说的之外,您在两个维度中循环的事实似乎表明您想要每行的总长度,因此,

    mycounter[i] = dTable.Rows[i][j].ToString().Length; 
    

    应该改为

    mycounter[i] += dTable.Rows[i][j].ToString().Length; 
    

    ToString() 方法也可能返回空字符串。也许您正在寻找Text 属性?

    【讨论】:

      【解决方案3】:

      除非您在 for 循环之间重新声明 mycounter,否则您会将每列 0 的 mycounter[i] 覆盖到 Columns.Count-1 直到最后一列。

      你想对长度求和吗?或者您是否想要一个二维数组用于 mycounter?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-25
        • 1970-01-01
        相关资源
        最近更新 更多