我有一个这样的DateTime对象列表,它们的间隔为15分钟
11:15 AM 上午11:30 上午11:45等等......
IList<DateTimeOffset> list;
我的班级看起来像这样
/// <summary>Start Time</summary>
[JsonProperty(PropertyName = "startTime")]
public DateTimeOffset StartTime { get; set; }
/// <summary>End Time</summary>
[JsonProperty(PropertyName = "endTime")]
public DateTimeOffset EndTime { get; set; }
我想浏览列表并创建一个结果对象,如:
StartTime - 上午11:15 结束 - 上午11:30
StartTime - 上午11:30 结束 - 上午11:45
Linq是否有实现这一目标的方法?
答案 0 :(得分:1)
如果您的结果是{nth,nth + 1}个列表项的组合,那么您可以这样做:
var result = list.Join(list,
x => list.IndexOf(x) + 1,
x => list.IndexOf(x),
(x, y) => new YourClass
{
StartTime = x,
EndTime = y
});
但我认为简单地使用for循环并取列表[i],列出[i + 1]
会更简洁答案 1 :(得分:0)
假设这是你的班级:
DateTime first = new DateTime(1, 1, 1, 11, 15, 0);
List<DateTimeOffset> list = new List<DateTimeOffset>();
list.Add(new DateTimeOffset(first));
list.Add(new DateTimeOffset(first.AddMinutes(15)));
list.Add(new DateTimeOffset(first.AddMinutes(30)));
这是你的初始名单:
List<YourClass> newList = (from i in list.Take(list.Count - 1)
select new YourClass
{
StartDate = i,
EndDate = list[list.IndexOf(i) + 1]
}).ToList();
LINQ代码是:
currentpos = transform.eulerAngles + new Vector3 (0, 90, 0);