Bạn có thể phân tích danh sách và gán một phím liền kề ví dụ như định nghĩa một lớp:
public class TimeStatus
{
public int ContiguousKey { get; set; }
public string Time { get; set; }
public string Status { get; set; }
}
Bạn sẽ gán giá trị cho các khóa tiếp giáp bởi Looping qua, duy trì đếm và phát hiện khi trạng thái thay đổi từ Bật thành Tắt và cứ thế sẽ cung cấp cho bạn danh sách như sau:
List<TimeStatus> timeStatuses = new List<TimeStatus>
{
new TimeStatus { ContiguousKey = 1, Status = "On", Time = "10:00"},
new TimeStatus { ContiguousKey = 1, Status = "On", Time = "11:00"},
new TimeStatus { ContiguousKey = 2, Status = "Off", Time = "12:00"},
new TimeStatus { ContiguousKey = 2, Status = "Off", Time = "13:00"},
new TimeStatus { ContiguousKey = 2, Status = "Off", Time = "14:00"},
new TimeStatus { ContiguousKey = 3, Status = "On", Time = "15:00"},
new TimeStatus { ContiguousKey = 3, Status = "On", Time = "16:00"}
};
Sau đó, sử dụng các truy vấn sau đây bạn có thể trích xuất các trạng và nhóm Times:
var query = timeStatuses.GroupBy(t => t.ContiguousKey)
.Select(g => new { Status = g.First().Status, Times = g });
Tôi nghĩ rằng đây là một bản sao có thể trùng lặp: http: // stackoverflow.com/questions/7469828/linq-query-to-split-an-trật-xếp-danh sách-vào-danh sách con-của-tiếp giáp-điểm-by-một-c – hcb
Là câu hỏi, được cung cấp các dữ liệu sau để tôi có thể xác định xem thực thể là On/Off tại một thời điểm nhất định? –