У меня есть эти классы:
[DataContract]
public class RowData
{
[DataMember]
public string ID { get; set; }
[DataMember]
public string AccountName { get; set; }
[DataMember]
public string AuthServerName { get; set; }
[DataMember]
public string SecurityName { get; set; }
[DataMember]
public string LastUser { get; set; }
[DataMember]
public string Status { get; set; }
[DataMember]
public string ClaimRelease { get; set; }
[DataMember]
public List<GameItem> Games { get; set; }
}
[DataContract]
public class GameItem
{
[DataMember]
public string Name { get; set; }
[DataMember]
public string Version { get; set; }
}
Я поставил наиболее вероятный нерабочий вопрос о том, как это «должно» выглядеть, если бы я знал, что делаю.
public List<RowData> GetSortedByColumnList(Entities db, int ColumnID, string direction, int GameCount, List<RowData> rows)
{
...
else if ((ColumnID > 3) && (ColumnID < GameCount + 4))
{
List<Game> gameslist = db.Games
.Where(x => x.GameIsActive == 1)
.ToList(); // Game has the key names
int index = (ColumnID - GameCount) - 1;
// gamename is the name that i'd like to match for sorting purposes.
string gamename = gameslist[index].GameName;
// *** LOOK HERE ****
List<RowData> sortedList = rows
.OrderBy(x => x.Games
.Min(Games => Games.Version)
.Where(Games => Games.Name == gamename))
.ToList();
rows = sortedList;
}
Это пример того, как будут выглядеть строки:
rows[0].id = 1
...
rows[0].Games[0].Name="A0"
rows[0].Games[0].Version=3
rows[0].Games[1].Name="B0"
rows[0].Games[1].Version=4
rows[1].id = 2
...
rows[1].Games[0].Name="A0"
rows[1].Games[0].Version=1
rows[0].Games[1].Name="B0"
rows[0].Games[1].Version=2
rows[2].id = 3
...
rows[2].Games[0].Name="A0"
rows[2].Games[0].Version=5
Таким образом, если строка gamename будет равна "B0", и мне нужно, чтобы список сортировался по номеру версии, так что порядок сортировки будет следующим: row [1], row [2], row [3]. Обратите внимание, что в строках [2] нет B0.
Как я могу изменить запрос в // *** LOOK HERE ****
, чтобы список сортировался так, как я хочу?
Ошибка компиляции 1 'char' не содержит определения для 'Name', и не найдено никакого метода расширения 'Name', принимающего первый аргумент типа 'char' (вы пропустили директиву using или ссылку на сборку?)