public class FlaggedCarDTO
{
public int CarId { get; set; }
public int FlagUserId { get; set; }
public int Year { get; set; }
public string Make { get; set; }
public string Model { get; set; }
public int ImageId { get; set; }
public string ImageName { get; set; }
}
< /code>
Вот несколько примеров данных: < /p>
var query = new List()
{
new FlaggedCarDTO() { CarId = 1, FlagUserId = 22, Year = 2020, Make = "Toyota", Model = "Camry", ImageId = 1, ImageName = "01.jpg" },
new FlaggedCarDTO() { CarId = 1, FlagUserId = 22, Year = 2020, Make = "Toyota", Model = "Camry", ImageId = 2, ImageName = "02.jpg" },
new FlaggedCarDTO() { CarId = 1, FlagUserId = 46, Year = 2020, Make = "Toyota", Model = "Camry", ImageId = 1, ImageName = "01.jpg" },
new FlaggedCarDTO() { CarId = 1, FlagUserId = 46, Year = 2020, Make = "Toyota", Model = "Camry", ImageId = 2, ImageName = "02.jpg" },
new FlaggedCarDTO() { CarId = 6, FlagUserId = 67, Year = 2016, Make = "Honda", Model = "Civic", ImageId = 18, ImageName = "54.jpg" },
new FlaggedCarDTO() { CarId = 6, FlagUserId = 67, Year = 2016, Make = "Honda", Model = "Civic", ImageId = 19, ImageName = "55.jpg" }
};
Я хочу сформировать эти данные, чтобы отобразить только первую запись для каждого карида в эти объекты:
public class FlaggedCar
{
public int Id { get; set; }
public int FlagUserId { get; set; }
public int Year { get; set; }
public string Make { get; set; }
public string Model { get; set; }
public List Images { get; set; }
}
public class Image
{
public int Id { get; set; }
public string Name { get; set; }
}
< /code>
Вот мой запрос LINQ: < /p>
var result = query.GroupBy(x => x.CarId)
.Select(grp => grp.Select(c => new FlaggedCar()
{
Id = c.CarId,
FlagUserId = c.FlagUserId,
Year = c.Year,
Make = c.Make,
Model = c.Model,
Images = grp.Select(i => new Image()
{
Id = i.ImageId,
Name = i.ImageName,
}).ToList(),
}).First()).ToList();
< /code>
Вот результат (сериализован для читаемости): < /p>
[
{
"Id": 1,
"FlagUserId": 22,
"Year": 2020,
"Make": "Toyota",
"Model": "Camry",
"Images": [
{
"Id": 1,
"Name": "01.jpg"
},
{
"Id": 2,
"Name": "02.jpg"
},
{
"Id": 1,
"Name": "01.jpg"
},
{
"Id": 2,
"Name": "02.jpg"
}
]
},
{
"Id": 6,
"FlagUserId": 67,
"Year": 2016,
"Make": "Honda",
"Model": "Civic",
"Images": [
{
"Id": 18,
"Name": "54.jpg"
},
{
"Id": 19,
"Name": "55.jpg"
}
]
}
]
Это почти то, что мне нужно, но изображения не выбирают только из первой записи. Обратите внимание, что Camry , изображения включают из обеих записей. Я думаю, что. First () требуется в вложенном списке изображений , но я не уверен, где его добавить?
У меня есть хранящаяся процедура, возвращая результаты в объекте FlaggedCardto : [code]public class FlaggedCarDTO { public int CarId { get; set; } public int FlagUserId { get; set; } public int Year { get; set; } public string Make { get; set; } public string Model { get; set; } public int ImageId { get; set; } public string ImageName { get; set; } } < /code> Вот несколько примеров данных: < /p> var query = new List() { new FlaggedCarDTO() { CarId = 1, FlagUserId = 22, Year = 2020, Make = "Toyota", Model = "Camry", ImageId = 1, ImageName = "01.jpg" }, new FlaggedCarDTO() { CarId = 1, FlagUserId = 22, Year = 2020, Make = "Toyota", Model = "Camry", ImageId = 2, ImageName = "02.jpg" }, new FlaggedCarDTO() { CarId = 1, FlagUserId = 46, Year = 2020, Make = "Toyota", Model = "Camry", ImageId = 1, ImageName = "01.jpg" }, new FlaggedCarDTO() { CarId = 1, FlagUserId = 46, Year = 2020, Make = "Toyota", Model = "Camry", ImageId = 2, ImageName = "02.jpg" }, new FlaggedCarDTO() { CarId = 6, FlagUserId = 67, Year = 2016, Make = "Honda", Model = "Civic", ImageId = 18, ImageName = "54.jpg" }, new FlaggedCarDTO() { CarId = 6, FlagUserId = 67, Year = 2016, Make = "Honda", Model = "Civic", ImageId = 19, ImageName = "55.jpg" } }; [/code] Я хочу сформировать эти данные, чтобы отобразить только первую запись для каждого карида в эти объекты: [code]public class FlaggedCar { public int Id { get; set; } public int FlagUserId { get; set; } public int Year { get; set; } public string Make { get; set; } public string Model { get; set; } public List Images { get; set; } }
public class Image { public int Id { get; set; } public string Name { get; set; } } < /code> Вот мой запрос LINQ: < /p> var result = query.GroupBy(x => x.CarId) .Select(grp => grp.Select(c => new FlaggedCar() { Id = c.CarId, FlagUserId = c.FlagUserId, Year = c.Year, Make = c.Make, Model = c.Model, Images = grp.Select(i => new Image() { Id = i.ImageId, Name = i.ImageName, }).ToList(), }).First()).ToList(); < /code> Вот результат (сериализован для читаемости): < /p> [ { "Id": 1, "FlagUserId": 22, "Year": 2020, "Make": "Toyota", "Model": "Camry", "Images": [ { "Id": 1, "Name": "01.jpg" }, { "Id": 2, "Name": "02.jpg" }, { "Id": 1, "Name": "01.jpg" }, { "Id": 2, "Name": "02.jpg" } ] }, { "Id": 6, "FlagUserId": 67, "Year": 2016, "Make": "Honda", "Model": "Civic", "Images": [ { "Id": 18, "Name": "54.jpg" }, { "Id": 19, "Name": "55.jpg" } ] } ] [/code] Это почти то, что мне нужно, но изображения не выбирают только из первой записи. Обратите внимание, что Camry , изображения включают из обеих записей. Я думаю, что. First () требуется в вложенном списке изображений , но я не уверен, где его добавить?
У меня есть хранящаяся процедура, возвращая результаты в объекте FlaggedCardto :
public class FlaggedCarDTO
{
public int CarId { get; set; }
public int FlagUserId { get; set; }
public int Year { get; set; }
public string Make { get; set; }
public...
Проблема
У нас есть пользовательский сериализатор для перечисления (измерение Valuetype), который хранит перечисление как строку в mongodb и пустывает его из строки обратно в перечисление при запросе.
enum измерение. Если это не так, то все...
Я пытаюсь создать фрейм данных из вложенного списка, содержащего разные элементы. В конце концов я распакую/разложу это, но на данный момент застрял на первом этапе.
Ниже приведен пример данных и код, который не работает:
import polars as pl...