Объединение 2 списков различных типов в 1 на основе идентификатора с использованием LINQ - PullRequest
2 голосов
/ 20 сентября 2019

Здравствуйте, я пытаюсь объединить эти 2 списка в 1.

List<Entry> testing = new List<Entry>();
List<Tool> yes = new List<Tool>();

foreach (var p in _context.Tool
   .Join(_context.Entry, 
         o => o.ToolId, 
         od => od.FktoolId, 
         (o, od) => new { o.Name, od.Measure, od.RunDate, od.User, od.V }))
{
    testing.Add(new LogEntries { 
      Measure = p.Measure, 
      V = p.V, 
      RunDate = p.RunDate, 
      User = p.User});

    yes.Add(new Tool { 
      Name = p.Name });
}

Итак, я беру эти 2 списка, потому что я хочу, чтобы Имя из одной таблицы соединялось с другой таблицей.Затем я беру список и превращаю его в JSON

ViewBag.Testing = JsonConvert.SerializeObject(testing);

Я только получаю данные из списка тестирования, но я хочу, чтобы имя из списка "да" в список "тестирование" на основе инструментаидентификаторы.

Так что я могу просто вставить имя в список или есть способ объединить их.Так как они являются разными типами, я не могу объединить или пересечь.

Итак, данные, которые я сейчас извлекаю, это

[{Измерение: "1",

V: 3,

RunDate: "08/12/19",

Пользователь: "Тестовый пользователь"}]

И я этого хочувыглядеть следующим образом

[{Измерение: "1",

В: 3,

RunDate: "08/12/19",

Пользователь: «Тестовый пользователь»,

Имя: «Дракон»}]

1 Ответ

2 голосов
/ 20 сентября 2019

В вашем выражении Join вы уже создаете комбинированные объекты.Почему бы вам просто не поместить эти комбинированные объекты в список и не сериализовать их?

var list = _context.Tool
    .Join(_context.Entry, 
          o => o.ToolId, 
          od => od.FktoolId, 
          (o, od) => new { od.Measure, od.V, od.RunDate, od.User, o.Name })
    .ToList();

ViewBag.Testing = JsonConvert.SerializeObject(list);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...