在c#中,有没有一种方法可以在具有多个值的字符串中使用Add、Subtract、Max、Min、Average、Mean、Middle运算符获得公式的结果,其中任何子表达式中的操作数都可以大于2?
类似的东西
var result = Eval("Max(1,2,3, Avg(4,5,6,7), 9+10+9.9, 11/12)")
或任何其他方式(不拆分字符串或单独评估每个操作(?
我试着搜索,但没有得到任何完整的解决方案。我发现RegEx
、DataTable.Computer
或Math库不支持具有两个以上值的操作。
不清楚您到底在问什么,但如果您正在寻找支持多个输入值的Max
和Avg
版本,则可以使用LINQ:
using System.Linq;
var result = new[] { 1, 2, 3, new[] { 4, 5, 6, 7 }.Average(), 9 + 10, 11/12 }.Max();
result
是19
,因为9 + 10
是这些元素中最大的。