c# – 迭代行时获取下一行的值

c# – 迭代行时获取下一行的值,第1张

概述myClass结构: public class myClass { public string Name { get; set; } public string AdditionalData { get; set; } public System.DateTime ActivityTime { get; set; } } 我有一个上面 myClass结构:

public class myClass    {        public string name { get; set; }        public string AdditionalData { get; set; }        public System.DateTime ActivityTime { get; set; }    }

我有一个上面的类列表,所有按活动时间排序说’行为’.

我希望将我的数据转换为以下类的列表..

public class newClass    {        public string name { get; set; }        public string AdditionalData { get; set; }        public System.DateTime StartTime { get; set; }    public System.DateTime EndTime { get; set; }    }

这里的StartTime与prev class的ActivityTime具有相同的值,所以我没有问题.
但是EndTime应该具有下一个列表对象的ActivityTime值,这个我无法弄清楚如何获取..
最后一个列表对象的EndTime可以与starttime相同

所以我的代码是……

List<newClass> items = new List<newClass>();foreach (var item in acts){            newClass si = new newClass                        {                            name=item.name,AdditionalData=item.AdditionalData,StartTime = item.ActivityTime,EndTime = //what do I do here??????                        };                        items.Add(si);}

任何帮助都是真诚的感谢

解决方法 我有一个比for循环更优雅的解决方案:

List<newClass> output = acts.Select((a,index) => new newClass()        {            name = a.name,AdditionalData = a.AdditionalData,StartTime = a.ActivityTime,EndTime = (index + 1 < acts.Count) ? acts[index + 1].ActivityTime : default(DateTime)        }).ToList();

或者您可以使用for循环而不是foreach:

List<newClass> items = new List<newClass>();// assuming length > 0int length = (acts.Length  % 2 == 0) ? acts.Length : acts.Length - 1;for (int i = 0; i < acts.Length; i++){    newClass si = new newClass    {        name=acts[i].name,AdditionalData=acts[i].AdditionalData,StartTime = acts[i].ActivityTime,EndTime = acts[i+1].ActivityTime    };    items.Add(si);  }if (length < acts.Length)  // handle the last element as you wish
总结

以上是内存溢出为你收集整理的c# – 迭代行时获取下一行的值全部内容,希望文章能够帮你解决c# – 迭代行时获取下一行的值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1220117.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存