Phy*_*dha 81 c# naming-conventions
当我为业务逻辑对象编写一些扩展方法时,我遇到了重命名转换方法的问题.someObject.ToAnotherObject()广泛使用会很好object.ToString().
但是,例如,LINQ混合了两种变体,我找不到它们之间的区别.ToDictionary(),ToList(),AsParallel(),AsQueryable(),...
这两个命名约定之间有什么区别,我应该知道如何决定是否使用我自己的类?
dca*_*tro 91
ToDictionary并且ToList以前缀为前缀,To因为它们不一定保留原始集合或其属性的结构标识.
List<T>转换为a Dictionary<K, V>创建具有全新结构的集合.HashSet<T>转换为a List<T>将删除集的唯一性属性.带有前缀的方法As不要做任何这些事情 - 它们只是提供原始集合的替代视图.他们丰富了它.
Jon*_*nna 26
在Linq中,ToXXX方法都执行查询并从结果中创建新对象,而这些AsXXX方法产生的新查询在某种程度上是不同的.它可以是相同的对象,但通过不同的接口访问(AsEnumerable()做到这一点),或者它可能是一个新的对象,改变功能(其他方法做到这一点,虽然一些检查,看看他们是否可以只返回给定对象,如AsQueryable()将source如果它IQueryable<T>已经实现则返回,否则创建一个新的EnumerableQuery<TElement>).