Я создал список классов C# с тремя полями. в этих полях также указывается идентификатор устройства, режим устройства, время. У меня был список моих классов по времени. список времени сортируется успешно, но список режимов устройства не сортируется относительно списка времени. как я могу это достичь. мой пример кода, приведенный ниже.Сортировка списка по отношению к другому списку
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PBAttendance.App_Code
{
public class DeviceLogData
{
List<int> deviceID = new List<int> { };
List<int> deviceMode = new List<int> { };
List<DateTime> time = new List<DateTime> { };
public List<int> DeviceID
{
get { return deviceID; }
set { deviceID = value; }
}
public List<int> DeviceMode
{
get { return deviceMode; }
set { deviceMode = value; }
}
public List<DateTime> Time
{
get { return time; }
set { time = value; }
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PBAttendance.App_Code
{
public class DeviceLogDataList:List<DeviceLogData>
{
}
}
DeviceLogDataList dvclogDataList = new DeviceLogDataList();
DeviceLogData dvclogData = new DeviceLogData();
dvclogData.DeviceID.Add(1);
dvclogData.DeviceMode.Add(1);
dvclogData.Time.Add(DateTime.ParseExact("10:49", "HH:mm", System.Globalization.CultureInfo.InvariantCulture));
dvclogData.DeviceID.Add(1);
dvclogData.DeviceMode.Add(1);
dvclogData.Time.Add(DateTime.ParseExact("10:49", "HH:mm", System.Globalization.CultureInfo.InvariantCulture));
dvclogData.DeviceID.Add(1);
dvclogData.DeviceMode.Add(2);
dvclogData.Time.Add(DateTime.ParseExact("12:51", "HH:mm", System.Globalization.CultureInfo.InvariantCulture));
dvclogData.DeviceID.Add(1);
dvclogData.DeviceMode.Add(2);
dvclogData.Time.Add(DateTime.ParseExact("09:49", "HH:mm", System.Globalization.CultureInfo.InvariantCulture));
dvclogData.DeviceID.Add(1);
dvclogData.DeviceMode.Add(1);
dvclogData.Time.Add(DateTime.ParseExact("13:49", "HH:mm", System.Globalization.CultureInfo.InvariantCulture));
dvclogDataList.Add(dvclogData);
dvclogDataList[0].Time.Sort();
Список время сортируется по 09: 49,10: 49,10: 49,12: 51,13: 49 отлично, но режим устройства и идентификатор устройства не отсортирован по списку времени. как это можно достичь. пожалуйста помогите. Извините за мой плохой английский. заранее спасибо.
ли все списки аспекты одного и того же элемента. Например: Идентификатор устройства [0] указывает на тот же элемент, что и DeviceMode [0]. Если да, я бы создал базовый класс с именем device, который содержит все ваши DiviceModes, ID и т. Д. Этот список можно легко отсортировать. Это будет иметь то преимущество, что никто не сможет «пропустить» ваши данные. –
Как время, так и режим, хотя и являются частью того же экземпляра класса, они представляют собой совершенно разные списки. поэтому я не думаю, что сортировка одного списка будет иметь какое-либо влияние на другой список. – Rakesh
проверить это: http://stackoverflow.com/questions/7099741/c-sharp-list-sort-by-two-columns, http: // stackoverflow.com/questions/289010/c-sharp-list-sort-by-x-then-y – Arie