我有以下課程:
public class Line
{
public List<Trip> Trips;
}
public class Trip
{
public TimeSpan Departure { get; set; }
public TimeSpan Arrival { get; set; }
}
和一個物件List<Line> lines。
使用 Linq,我試圖找到旅行中所有時間的串列,無論是出發時間還是到達時間,都可能沒有重復。
例如:
DEPARTURE | ARRIVAL
05:11 | 12:32
08:00 | 11:00
12:32 | 14:00
should return:
05:11
12:32
08:00
11:00
14:00
我試過這樣的事情:
var l = lines
.SelectMany(t => t.Trips)
.Select(x => x.Departure).Concat(x => x.Arrival);
或者
var l = lines
.SelectMany(t => t.Trips)
.SelectMany(x => new { x.Departure, x.Arrival });
但他們沒有作業。
我找到了這個答案,但我無法適應我的情況。
uj5u.com熱心網友回復:
這將為您提供一個陣列TimeSpan并洗掉重復項:
var l = lines.SelectMany(a => a.Trips)
.Select(b => new TimeSpan[] { b.Arrival, b.Departure})
.SelectMany(c => c)
.Distinct()
.ToArray();
如果要保留重復項,請洗掉對Distinct()
var l = lines.SelectMany(a => a.Trips)
.Select(b => new TimeSpan[] { b.Arrival, b.Departure})
.SelectMany(c => c)
.ToArray();
如果您希望他們訂購:
var l = lines.SelectMany(a => a.Trips)
.Select(b => new TimeSpan[] { b.Arrival, b.Departure})
.SelectMany(c => c)
.Distinct()
.OrderBy(d => d)
.ToArray();
uj5u.com熱心網友回復:
我認為這可能是最簡單的方法
List<Line> result = line1.Select(model => model.Departure)
.Union(line2.Select(model => model.Arrival))
.ToList();
uj5u.com熱心網友回復:
var selection = lines.SelectMany(line => line.Trips).Select(t => t);
var distinctFlat = selection.Select(t => t.Arrival).Concat(selection.Select(t => t.Departure)).Distinct().ToList();
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/481535.html
