【问题标题】:Unable to cast object of type 'System.String[]' to type 'System.IConvertible'无法将“System.String[]”类型的对象转换为“System.IConvertible”类型
【发布时间】:2013-07-09 07:47:51
【问题描述】:
string[] weight = txtProductOptn1.Text.Split(',');
var Weight1 = Convert.ToInt32(weight);

当我将字符串数组转换为 int 或 decimal 时出现错误

无法将“System.String[]”类型的对象转换为类型 'System.IConvertible'。

请找出答案。

【问题讨论】:

  • 请找到答案..嗯。
  • var Weight1 = weight.Sum(i => Int32.Parse(i)); ?您能具体告诉我们您要做什么吗?

标签: c# .net


【解决方案1】:

试试这个,weight 是一个数组。假设您要转换数组的第一个元素。

string[] weight = txtProductOptn1.Text.Split(',');
var Weight1 = Convert.ToInt32(weight[0]);

【讨论】:

    【解决方案2】:

    您无法将string[] 转换为int。也许您想将每个字符串转换为 int:

    IEnumerable<int> ints = weight.Select(int.Parse);
    

    请注意,如果其中一个字符串由于格式无效而无法解析为 int,则会失败。

    【讨论】:

      【解决方案3】:

      您不能将字符串数组 (string[]) 转换为整数 (int)。 使用System.Linq,可以试试:

      int[] convertedWeight = txtProductOptn1.Text.Split(',')
                                                  .Select(x => Convert.ToInt32(x))
                                                  .ToArray();
      

      将每个元素转换为整数。

      我在这里找到了类似的帖子:Convert string to int array using LINQ

      【讨论】:

        猜你喜欢
        • 2015-12-17
        • 2012-03-14
        • 1970-01-01
        • 2020-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多