当前位置: 首页 > 编程语言 > C#

C#可以比较String值并返回布尔值,例如,-5-10-返回trueshare

时间:2023-04-10 16:50:58 C#

C#可以比较字符串值,返回布尔值。例如。"5<10"返回true有没有办法在字符串值中进行比较可以返回布尔值。例子。if(5>5000)显然返回错误值。但我想要做的是让“5>5000”返回false。例子。字符串com="5>10";那么有没有办法让这个com变量返回一个假值,就好像它是整数之间的比较一样。没有内置的方法,但NCalc可以在这里提供帮助NCalc.Expressionexpr=newNCalc.Expression("5>10");boolb=(bool)expr.Evaluate();您甚至可以使用参数NCalc.Expressionexpr=newNCalc.Expression("a{if(name=="a")args.Result=5;if(name=="b")args.Result=10;};boolb=(bool)expr.Evaluate();没有内置的方法来做到这一点。虽然有几种方法可以解决这个问题,但其中之一是自己解析文本。我在代码中这样做在文章AC#ExpressionEvaluator中提供。您可能想查看该代码。不,这不能直接完成。您应该编写自己的类或扩展String类。要处理像“5<10”这样的字符串,您需要自己的方法。您应该在字符串中搜索表示比较的符号,例如"vararr=com.Split('>').Select(x=>int.Parse(x.Trim())).ToArray();returnarr[0]>arr[1];您还可以使用正则表达式来变得更复杂(未经测试,但它应该可以工作):varr=newRegex(@"(d+)b*(|=|=)b*(d+)")varmatch=r.Match(com);if(match.Success){vara=int.Parse(match.Captures[0]);varb=int.Parse(match.Captures[2]);switch(match.Captures[1]){case"":returna>b;case"=b;}}//呃哦抛出新的ArgumentException(“com”);考虑使用FLEE:Flee是.NETFramework的表达式解析器和求值器。它允许您在运行时评估字符串表达式,例如sqrt(a^2+b^2)。它使用自定义编译器、强类型表达式语言和轻量级代码生成器将表达式直接编译为IL。这意味着表达式评估非常快速和高效。试试这个演示,它可以让您根据表情生成图像,然后亲眼看看。使用FLEE,您可以使用类似以下内容轻松地做到这一点:varcon=newExpressionContext();conststringcom=@"5>5000";varcomparison=con.CompileDynamic(com);varresult=comparison.Evaluate();MessageBox.Show(result.ToString());HTH...以上就是C#学习教程:C#可以比较String值,返回布尔值。例如。"5<10"返回true共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击权利联系管理会员删除。如需转载请注明出处: