我尝试在C#中搜索最常用的内置接口,但找不到文章,所以我想我们可以在这里回顾一下.
我们在答案中使用以下约定:
IinterfaceName1:为此
IinterfaceName2:为此
dah*_*byk 34
我认为最重要的两个是语言支持:
IEnumerable<T>(和IEnumerable):foreach与LINQ 一起使用IDisposable:对于需要清理的资源,使用 using除此之外...
IComparable<T>和IComparer<T>:用于广义排序IEquatable<T>和IEqualityComparer<T>:用于广义平等IList<T>和ICollection<T>:用于可变集合IDictionary<T,K>:用于查找集合IQueryable<T>:允许您对可查询的数据源执行请求.例如
IQueryable<Project> projects = db.Projects;
var selectedItems = projects
.Where(x => x.Workers.Count() > 10 && x.Status != 1)
.ToArray();
Run Code Online (Sandbox Code Playgroud)
在这个例子中,过滤将在SQL Server上完成(涉及将Expression转换x => x.Workers.Count() > 10 && x.Status != 1为SQL语句的棘手机制)所以不需要编写自定义SQL命令来使用所有可能的数据源.
也可以不仅用于SQL,你可以查询对象或其他任何东西,只需查找实现 IQueryable<T>