在将string转换为int时遇到问题



在我的程序中,我有一个treeView。在我正在处理的部分中,节点的displayNames是数值integer值,但显示为strings。在我的程序中,我需要将这些displayNames转换并临时存储在integer变量中。我通常使用Regex.Match()来做到这一点没有问题,但在这种情况下,我得到编译器错误:Cannot implicitly convert type 'string' to 'int' .

这是我的代码:

//This is the parent node as you may be able to see below
//The children of this node have DisplayNames that are integers
var node = Data.GetAllChildren(x => x.Children).Distinct().ToList().First(x => x.identify == 'B');
//Get # of children -- if children exist
if (node.Children.Count() > 0)
{
     for (int i = 0; i < node.Children.Count(); i++)
     {
          //Error on this line!!**
          IntValue = Regex.Match(node.Children.ElementAt(i).DisplayName.Value, @"d+").Value;
     }
}

*注:DisplayName.Valuestring

使用int. parse (string)将字符串转换为整型,它返回传入字符串所表示的整型,如果输入格式不正确则抛出。

int.Parse(node.Children.ElementAt(i).DisplayName.Value)

也可以使用int。如果你不想要抛出的话,试试parse。在这种情况下,您可以使用:

int parsedValue;
if (int.TryParse(node.Children.ElementAt(i).DisplayName.Value, out parsedValue))
{
  ///Do whatever with the int
}

这个问题是因为你在这个调用中从Match转换到int

IntValue = Regex.Match(node.Children.ElementAt(i).DisplayName.Value, @"d+").Value;

试试这样写:

Match m = Regex.Match(node.Children.ElementAt(i).DisplayName.Value, @"d+").Value;
int value = m.Matches[0] //You'll have to verify this line, I'm going from memory here.

相关内容

  • 没有找到相关文章

最新更新