首页 / C# / c# – 遍历列表以使用.NET添加元素
c# – 遍历列表以使用.NET添加元素
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 遍历列表以使用.NET添加元素,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1987字,纯文字阅读大概需要3分钟。
内容图文
![c# – 遍历列表以使用.NET添加元素](/upload/InfoBanner/zyjiaocheng/821/87d7591bd36b443f9d08b6cc3e311977.jpg)
我有一个对象列表.每个对象都有一个整数和一个包含月份和年份值的DateTime变量.我想遍历列表并通过添加缺少的月份(数量为0)填充列表,以便在列表中表示所有连续月份.实现这一目标的最佳方法是什么?
例:
原始清单
{Jan10,3},{Feb10,4},{Apr10,2},{May10,2},{Aug10,3},{Sep10,-3},{Oct10,6},{Nov10,3},{ Dec10,7},{Feb11,3}
新名单
{Jan10,3},{Feb10,4},{Mar10,0},{Apr10,2},{May10,2},{Jun10,0},{Jul10,0} {Aug10,3},{Sep10, -3},{Oct10,6},{Nov10,3},{Dec10,7},{Jan11,0},{Feb11,3}
解决方法:
一种可能的算法是跟踪前一个月和当前月份.如果先前和当前之间的差异是1个月,则将结果附加到当前.如果差异超过一个月,请先添加缺失的月份,然后再复制当前月份.
Foo prev = months.First();
List<Foo> result = new List<Foo> { prev };
foreach (Foo foo in months.Skip(1))
{
DateTime month = prev.Month;
while (true)
{
month = month.AddMonths(1);
if (month >= foo.Month)
{
break;
}
result.Add(new Foo { Month = month, Count = 0 });
}
result.Add(foo);
prev = foo;
}
结果:
01-01-2010 00:00:00: 3
01-02-2010 00:00:00: 4
01-03-2010 00:00:00: 0
01-04-2010 00:00:00: 2
01-05-2010 00:00:00: 2
01-06-2010 00:00:00: 0
01-07-2010 00:00:00: 0
01-08-2010 00:00:00: 3
01-09-2010 00:00:00: -3
01-10-2010 00:00:00: 6
01-11-2010 00:00:00: 3
01-12-2010 00:00:00: 7
01-01-2011 00:00:00: 0
01-02-2011 00:00:00: 3
进行此编译所需的其他代码:
class Foo
{
public DateTime Month { get; set; }
public int Count { get; set; }
}
List<Foo> months = new List<Foo>
{
new Foo{ Month = new DateTime(2010, 1, 1), Count = 3 },
new Foo{ Month = new DateTime(2010, 2, 1), Count = 4 },
new Foo{ Month = new DateTime(2010, 4, 1), Count = 2 },
new Foo{ Month = new DateTime(2010, 5, 1), Count = 2 },
new Foo{ Month = new DateTime(2010, 8, 1), Count = 3 },
new Foo{ Month = new DateTime(2010, 9, 1), Count = -3 },
new Foo{ Month = new DateTime(2010, 10, 1), Count = 6 },
new Foo{ Month = new DateTime(2010, 11, 1), Count = 3 },
new Foo{ Month = new DateTime(2010, 12, 1), Count = 7 },
new Foo{ Month = new DateTime(2011, 2, 1), Count = 3 }
};
注意:为简单起见,我没有处理原始列表为空的情况,但您应该在生产代码中执行此操作.
内容总结
以上是互联网集市为您收集整理的c# – 遍历列表以使用.NET添加元素全部内容,希望文章能够帮你解决c# – 遍历列表以使用.NET添加元素所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。