110,536
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Test.PreformTest();
}
}
class ArrayOperation : System.Dynamic.DynamicObject
{
public Func<double[], double[]> ComputeSort = x => x.OrderBy(y => y).ToArray();
public override bool TryInvokeMember(System.Dynamic.InvokeMemberBinder binder, object[] args, out object result)
{
MethodInfo[] mis = typeof(Enumerable).GetMethods();
MethodInfo mi = mis.Where(x => x.Name == binder.Name.Substring(7) && x.ReturnType == typeof(double) && x.ToString().Contains("IEnumerable`1[System.Double]")).First();
result = mi.Invoke(null, new object[] { (args[0] as double[]).AsEnumerable<double>() });
return true;
}
}
class Test
{
public static void PreformTest()
{
double[] array = new double[] { 1.08, 3.5, 5.0, 0.98, -1.1, 4.26, 7.88, 3.6, 1.80 };
dynamic o = new ArrayOperation();
Console.WriteLine("数据:");
array.ToList().ForEach(x => Console.Write(x + "\t"));
Console.WriteLine("\r\nAverage = {0}, Sum = {1}, Max = {2}, Min = {3}.",
o.ComputeAverage(array),
o.ComputeSum(array),
o.ComputeMax(array),
o.ComputeMin(array));
Console.WriteLine("排序:");
double[] sorted = o.ComputeSort(array);
sorted.ToList().ForEach(x => Console.Write(x + "\t"));
Console.WriteLine();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Test.PreformTest();
}
}
class ArrayOperation
{
public static Func<double[], double> ComputeAverage = x => x.Average();
public static Func<double[], double> ComputeSum = x => x.Sum();
public static Func<double[], double> ComputeMax = x => x.Max();
public static Func<double[], double> ComputeMin = x => x.Min();
public static Func<double[], double[]> ComputeSort = x => x.OrderBy(y => y).ToArray();
}
class Test
{
public static void PreformTest()
{
double[] array = new double[] { 1.08, 3.5, 5.0, 0.98, -1.1, 4.26, 7.88, 3.6, 1.80 };
Console.WriteLine("数据:");
array.ToList().ForEach(x => Console.Write(x + "\t"));
Console.WriteLine("\r\nAverage = {0}, Sum = {1}, Max = {2}, Min = {3}.",
ArrayOperation.ComputeAverage(array),
ArrayOperation.ComputeSum(array),
ArrayOperation.ComputeMax(array),
ArrayOperation.ComputeMin(array));
Console.WriteLine("排序:");
ArrayOperation.ComputeSort(array).ToList().ForEach(x => Console.Write(x + "\t"));
Console.WriteLine();
}
}
}