Группа к паре ключевых значений, где значение-это список элементов, которые разделяют один и тот же ключ

StackOverflow https://stackoverflow.com/questions/6348290

  •  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();

У этого есть два анонимных типа - один раз для класса «Контейнер» и один раз для части «местоположения».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top