namespace start006
{
public interface IAccount
{
string Name { get; }
int Money { get; }
}
public class Account:IAccount
{
private string name;
private int money;
string IAccount.Name
{
get { return name; }
}
int IAccount.Money
{
get { return money; }
}
public Account(string n, int m)
{
name = n;
money = m;
}
}
public static class Alogrithm
{
public static int AccumulateSimple<TAccount>(IEnumerable<TAccount> source) where TAccount:IAccount
{
int sum = 0;
foreach (var it in source)
{
sum += it.Money;
}
return sum;
}
}
class Program
{
static void Main(string[] args)
{
List<Account> accountSum = new List<Account>();
accountSum.Add(new Account("xiaolan",45));
accountSum.Add(new Account("kenan", 78));
Console.WriteLine(Alogrithm.AccumulateSimple(accountSum));
Console.Read();
}
}
}
namespace start007
{
public class Account
{
public string name;
public int money;
public Account(string n, int m)
{
name = n;
money = m;
}
}
public static class Alogrithm
{
public static T2 AccmulateSimple<T1,T2>(IEnumerable<T1> source,Func<T1,T2,T2> action)
{
T2 sum = default(T2);
foreach(T1 item in source)
{
sum = action(item,sum);
}
return sum;
}
}
class Program
{
static void Main(string[] args)
{
List<Account> accountSum = new List<Account>();
accountSum.Add(new Account("xiaolan",45));
accountSum.Add(new Account("kenan", 78));
Console.WriteLine(Alogrithm.AccmulateSimple<Account,int>(accountSum,(item,sum)=>sum+item.money));
Console.Read();
}
}
}