C# 使用Enumerable.Range 打印数字
2024-10-21 13:08:45
static void Main(string[] args)
{
var list1 = Enumerable.Range(0, (int)Math.Pow(2, 22)).ToList(); var list2 = new List<int>(list1);
list2.Add(1); Console.WriteLine($"list1.Capacity={list1.Capacity}");
Console.WriteLine($"list2.Capacity={list2.Capacity}"); Console.ReadLine();
}
一、源码
public static IEnumerable<int> Range(int start, int count)
{
long num = (long) start + (long) count - 1L;
if (count < 0 || num > (long) int.MaxValue)
throw Error.ArgumentOutOfRange("count");
else
return Enumerable.RangeIterator(start, count);
}
private static IEnumerable<int> RangeIterator(int start, int count)
{
for (int i = 0; i < count; ++i)
yield return start + i;
}
二、写我们自己的时间序列DataRange
// implementation
public static System.Collections.Generic.IEnumerable<DateTime> DateRange(DateTime begin, DateTime end)
{
for (var iterator = begin; iterator <= end; iterator = iterator.AddDays(1))
{
yield return iterator;
}
}
// usage
foreach (var date in DateRange(DateTime.Now.Date,DateTime.Now.Date.AddDays(5).AddHours(3)))
{
Console.WriteLine(date.ToLocalTime());
}
最新文章
- Hiho 1232 北京网络赛 F Couple Trees
- .Net Task<;T>;的一种比较神奇的卡死情况(Wait/Result卡死, await能得到结果)
- pushd
- 还原SQLServer2008数据库报用户无法登录 .
- 局部内部类访问方法中的局部变量为什么加final
- ContextLoaderListener作用详解(转)
- Redis的PHP操作手册
- CentOS7安装RabbitMQ集群
- C语言存储类型及各存储类型作用域和生存域比较
- ubuntu14.04.2 添加ppa remastersys源 镜像ubuntu系统
- 第一篇:GCD的使用
- org.springframework.dao.InvalidDataAccessApiUsageException: detached entity passed to persist: sys.entity.Role; nested exception is org.hibernate.PersistentObjectException: 的解决方案
- Python待分析的模块
- python 打印几行空行、 打印不换行
- 关于redis分布式锁的实现方式(转载)
- php coding中的一些小问题
- jquery提示sucess
- jsp实现验证码登陆
- java.lang.NoClassDefFoundError 错误
- 动手动脑(lesson2)