Группа к паре ключевых значений, где значение-это список элементов, которые разделяют один и тот же ключ
-
27-10-2019 - |
Вопрос
Как создать «сложный» объект из списка полей
бывший.:
public class Lines {
public string itemName;
public string locationName;
public string locationGeo;
}
List<Lines> lines = new List<Lines>(){
new Lines() {itemName= "item1", locationName="someloc1", locationGeo="1.11, 1.11"},
new Lines() {itemName= "item1", locationName="someloc2", locationGeo="1.12, 1.12"},
new Lines() {itemName= "item1", locationName="someloc3", locationGeo="1.13, 1.13"},
new Lines() {itemName= "item2", locationName="someloc4", locationGeo="1.14, 1.14"},
new Lines() {itemName= "item2", locationName="someloc5", locationGeo="1.15, 1.15"}
}
Группа к чему -то вроде, пример объекта:
public class exampleLines{
public string itemName;
public locations locs;
}
PS.: этого класса вообще не существует.
Решение
Итак, вы хотите группировать itemName
? Что-то типа:
var query = lines.GroupBy(x => x.itemName)
.Select(g => new { ItemName = g.Key,
Locations = g.Select(x => new { Name = x.locationName,
Geo = x.locationGeo })
.ToList() })
.ToList();
У этого есть два анонимных типа - один раз для класса «Контейнер» и один раз для части «местоположения».
Не связан с StackOverflow