IEnumerable没有一个ForEach方法,我们可以使用C#写一个扩展方法: Source Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Insus.NET.ExtendMethods { public static class Enumerables { public st…
void Main() { // This uses a custom 'Pair' extension method, defined below. Customers .Select (c => c.Name.ToUpper()) .Pair() // Local from this point on. .OrderBy (n => n) .Dump(); // Here's a more substantial example: Customers .Select (c => c.…
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Reflection; using System.Collections; namespace XHSoft.LicenseManagerUI { /// <summary> /// 扩展属性 /// </summary> public static class Extensions {…
状态机 有限状态机(Finite State Machine 或 Finite State Automata)是软件领域中一种重要的工具. 状态机允许一个对象在其内部状态改变时改变它的行为.对象内部状态决定行为方式,对象状态改变行为方式改变,这里强调内部状态. Command 模式是将命令请求封装成一个为对象,将不同的请求对象参数化以达到同样的调用执行不同的命令: State 模式是将对象的状态封装成一个对象,是在不同的状态下同样的调用执行不同的操作. 迭代器是一个典型的状态机例子,后续会讲解.…
首先看看继承关系 public abstract class DbSet : DbQuery public abstract class DbQuery : IOrderedQueryable, IQueryable, IEnumerable, IListSource public interface IQueryable<out T> : IEnumerable<T>, IQueryable, IEnumerable 再看这段代码: 定义了Members: public DbSe…
假如我有两个集合: public class Teacher { public int Id { get; set; } public string Name { get; set; } } public class Student { public int Id { get; set; } public string UserName { get; set; } public int TeacherId { get; set; } } 集合代码: static void Main(string…