C#在表达式中将字符串转换为int

董翠

我正在做一个将项目列表转换为C#代码的小项目。例如:temp1.greaterThan(1); temp2.​​contains(“ a”); temp1,temp2是字符串类型的表达式变量。源代码是:

var temp1 = Expression.Variable(typeof(string), "temp1");   

所以我想我需要将temp1转换为整数变量。我尝试了以下方法,但没有任何效果:

Expression greaterThan = Expression.GreaterThan(temp1, Expression.Constant(1));

它会抛出异常,因为temp1是字符串,因此无法与1比较。

Expression.GreaterThan(Expression.Call(typeof(int).GetMethod("Parse"), temp1), Expression.Constant(1));

它将引发“发现歧义匹配”。例外

Expression.GreaterThan(Expression.Call(typeof(Convert).GetMethod("ToInt32"), temp1), Expression.Constant(1));

同样的例外:发现模糊匹配。

Expression.GreaterThan(Expression.Convert(temp1,typeof(Int32)), Expression.Constant(1));

例外:在类型'System.String'和'System.Int32'之间未定义任何强制操作符。

所以我想我需要在Expression.GreaterThan方法内有一个convert方法。有人有主意吗?非常感谢。

Cheng Chen

您应该使用int.Parse解析字符串而不是显式转换。请注意,这里int.Parse有一些重载,这就是为什么您会收到“发现歧义匹配”异常的原因。

var temp1 = Expression.Variable(typeof(string), "temp1");

//use int.Parse(string) here
var parseMethod = typeof(int).GetMethod("Parse", new[] { typeof(string) }); 

var gt = Expression.GreaterThan(Expression.Call(parseMethod, temp1), Expression.Constant(1));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Lazor C#中将lambda表达式的结果转换为字符串?

来自分类Dev

如何在Lazor C#中将lambda表达式的结果转换为字符串?

来自分类Dev

在java中将字符串转换为表达式

来自分类Dev

在javascript中将正则表达式字符串转换为正则表达式对象

来自分类Dev

MarkLogic:在cts:search中将字符串转换为路径表达式

来自分类Dev

如何在angularjs表达式中将字符串转换为数字或日期

来自分类Dev

如何在Linq表达式中将字符串转换为TimeSpan?

来自分类Dev

是否可以仅使用lambda表达式将字符串转换为int []?

来自分类Dev

Linq表达式转换为字符串

来自分类Dev

将NCalc表达式转换为字符串

来自分类Dev

将字符串转换为 SymPy 表达式?

来自分类Dev

在C#中将布尔表达式转换为char

来自分类Dev

在C#中将foreach转换为lambda表达式

来自分类Dev

使用正则表达式将字符串小数转换为字符串Int

来自分类Dev

使用正则表达式在python中的字符串中将Boolean true转换为True

来自分类Dev

将RGB字符串转换为RGBa字符串的正则表达式

来自分类Dev

在C#中标记表达式字符串

来自分类Dev

如何在C ++中将字符串转换为int?

来自分类Dev

在 C 中将字符串转换为 int

来自分类Dev

在C#中将可空字符串转换为可空int

来自分类Dev

无法在C#中将类型字符串隐式转换为int

来自分类Dev

在C#中将包含句点(。)的字符串转换为Int32时的问题

来自分类Dev

无法在C#中将字符串隐式转换为int

来自分类Dev

在C#中将字符串数组转换为Int数组

来自分类Dev

如何在C#中将unicode字符串转换为int?

来自分类Dev

将for循环转换为将concat字符串转换为lambda表达式

来自分类Dev

SSIS-将nchar空字符串转换为int时表达式计算错误

来自分类Dev

检查输入字符串是否为数字,是否为C ++,如果是,则将其转换为int(正则表达式?)

来自分类Dev

在C#中将字符串转换为数字

Related 相关文章

  1. 1

    如何在Lazor C#中将lambda表达式的结果转换为字符串?

  2. 2

    如何在Lazor C#中将lambda表达式的结果转换为字符串?

  3. 3

    在java中将字符串转换为表达式

  4. 4

    在javascript中将正则表达式字符串转换为正则表达式对象

  5. 5

    MarkLogic:在cts:search中将字符串转换为路径表达式

  6. 6

    如何在angularjs表达式中将字符串转换为数字或日期

  7. 7

    如何在Linq表达式中将字符串转换为TimeSpan?

  8. 8

    是否可以仅使用lambda表达式将字符串转换为int []?

  9. 9

    Linq表达式转换为字符串

  10. 10

    将NCalc表达式转换为字符串

  11. 11

    将字符串转换为 SymPy 表达式?

  12. 12

    在C#中将布尔表达式转换为char

  13. 13

    在C#中将foreach转换为lambda表达式

  14. 14

    使用正则表达式将字符串小数转换为字符串Int

  15. 15

    使用正则表达式在python中的字符串中将Boolean true转换为True

  16. 16

    将RGB字符串转换为RGBa字符串的正则表达式

  17. 17

    在C#中标记表达式字符串

  18. 18

    如何在C ++中将字符串转换为int?

  19. 19

    在 C 中将字符串转换为 int

  20. 20

    在C#中将可空字符串转换为可空int

  21. 21

    无法在C#中将类型字符串隐式转换为int

  22. 22

    在C#中将包含句点(。)的字符串转换为Int32时的问题

  23. 23

    无法在C#中将字符串隐式转换为int

  24. 24

    在C#中将字符串数组转换为Int数组

  25. 25

    如何在C#中将unicode字符串转换为int?

  26. 26

    将for循环转换为将concat字符串转换为lambda表达式

  27. 27

    SSIS-将nchar空字符串转换为int时表达式计算错误

  28. 28

    检查输入字符串是否为数字,是否为C ++,如果是,则将其转换为int(正则表达式?)

  29. 29

    在C#中将字符串转换为数字

热门标签

归档