使用委託(或匿名函數)求一個未知類型的數組最大值
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DelegateGetMax
{
delegate int DelMax(object o1, object o2);
class Program
{
/// <summary>
/// 使用委託求一個不確定類型數組的最大值
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
////實用委託求字符串數組的最大值
//object[] str = { "2354tqwafasg", "asgtsa345346t", "w3r3wrsdat4t", "sdgq4w4t46tsdf", "asdgfaweestgwe3", "dagerwet245twreq", "sdfasdfasdfd" };
//object result = GetMax(str, delegate(object o1, object o2)
//{
// string s1 = (string)o1;
// string s2 = (string)o2;
// return s1.Length - s2.Length;
//});
//Console.WriteLine(result);
//實用匿名函數求字符串類型的數字求最大值
//string[] str = { "2354tqwafasg", "asgtsa345346t", "w3r3wrsdat4t", "sdgq4w4t46tsdf", "asdgfaweestgwe3", "dagerwet245twreq", "sdfasdfasdfd" };
//object result = GetMax(str, (object o1, object o2) =>
//{
// string s1 = (string)o1;
// string s2 = (string)o2;
// return s1.Length - s2.Length;
//});
//Console.WriteLine(result);
//使用委託求int類型的數組求最大值
//object[] i = { 124, 15245, 123, 36, 364, 74, 325, 743, 234 };
//object result = GetMax(i, delegate(object o1, object o2)
//{
// int i1 = (int)o1;
// int i2 = (int)o2;
// return i1 - i2;
//});
//Console.WriteLine(result);
//實用匿名函數求int類型的數字求最大值
object[] i = { 124, 15245, 123, 36, 364, 74, 325, 743, 234 };
object result = GetMax(i, (object o1, object o2) =>
{
int i1 = (int)o1;
int i2 = (int)o2;
return i1 - i2;
});
Console.WriteLine(result);
Console.ReadKey();
}
public static object GetMax(object[] o, DelMax del)
{
object max = o[0];
for (int i = 0; i < o.Length; i++)
{
if (del(max, o[i]) < 0)
{
max = o[i];
}
}
return max;
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DelegateGetMax
{
delegate int DelMax(object o1, object o2);
class Program
{
/// <summary>
/// 使用委託求一個不確定類型數組的最大值
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
////實用委託求字符串數組的最大值
//object[] str = { "2354tqwafasg", "asgtsa345346t", "w3r3wrsdat4t", "sdgq4w4t46tsdf", "asdgfaweestgwe3", "dagerwet245twreq", "sdfasdfasdfd" };
//object result = GetMax(str, delegate(object o1, object o2)
//{
// string s1 = (string)o1;
// string s2 = (string)o2;
// return s1.Length - s2.Length;
//});
//Console.WriteLine(result);
//實用匿名函數求字符串類型的數字求最大值
//string[] str = { "2354tqwafasg", "asgtsa345346t", "w3r3wrsdat4t", "sdgq4w4t46tsdf", "asdgfaweestgwe3", "dagerwet245twreq", "sdfasdfasdfd" };
//object result = GetMax(str, (object o1, object o2) =>
//{
// string s1 = (string)o1;
// string s2 = (string)o2;
// return s1.Length - s2.Length;
//});
//Console.WriteLine(result);
//使用委託求int類型的數組求最大值
//object[] i = { 124, 15245, 123, 36, 364, 74, 325, 743, 234 };
//object result = GetMax(i, delegate(object o1, object o2)
//{
// int i1 = (int)o1;
// int i2 = (int)o2;
// return i1 - i2;
//});
//Console.WriteLine(result);
//實用匿名函數求int類型的數字求最大值
object[] i = { 124, 15245, 123, 36, 364, 74, 325, 743, 234 };
object result = GetMax(i, (object o1, object o2) =>
{
int i1 = (int)o1;
int i2 = (int)o2;
return i1 - i2;
});
Console.WriteLine(result);
Console.ReadKey();
}
public static object GetMax(object[] o, DelMax del)
{
object max = o[0];
for (int i = 0; i < o.Length; i++)
{
if (del(max, o[i]) < 0)
{
max = o[i];
}
}
return max;
}
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.