Я видел сообщения, как внизу, которые мне очень трудно понять. Поэтому я переписываю его. Извините, если кто-то чувствует, что это дубликат. Я только простые требованияОбъединить списки в один
C# Joins/Where with Linq and Lambda
У меня есть класс, как этот
public class Person
{
public int Id{get;set;}
public string Name{get;set;}
public string MailingAddress{get;set;}
}
У меня есть метод, как показано ниже
public IList<Person> GetNames(IList<int> ids)
Это даст мне список людей, как показано ниже
1 "Сэм" ""
2 "Dev" ""
4 "Hummy"
У меня есть еще один способ, как показано ниже
public IList<Person> GetMailingAddress(IList<int> ids)
Это даст мне список лиц, как ниже
1 "" "ABC"
6 "" "TTT"
2 «» «XYZ»
Теперь нужно объединить результаты двух методов, так что я могу иметь мой окончательный результат, как этот
1 «Сэм», «ABC»
2 «Dev» " XYZ "
ОБНОВЛЕНИЕ: Извините, что я не дал однозначных данных. Пожалуйста, см. Выше моих данных теста.
Если у вас есть два списка одинаковой длины с коррелированными индексами, которые вы хотите объединить в один список, операция, которую вы ищете, - ['Zip'] (http://msdn.microsoft.com/ru -us/библиотека/dd267698 (v = vs.110) .aspx). Для более сложной «корреляции» вы должны использовать ['Присоединиться'] (http://msdn.microsoft.com/en-us/library/bb534675 (v = vs.110) .aspx), где вы можете определить логику, которая составляет матч. Ни одно из них не является слиянием в том, что они не изменяют исходные коллекции, это * проекции * в новую коллекцию. –
К сожалению, из вашего вопроса не совсем ясно, что вы пытаетесь сделать. Почему у вас есть два разных метода для возврата объектов «Person» на основе значения ID? Вы имеете дело с двумя разными таблицами данных или чем-то еще? Было бы более целесообразным создать метод, который заполняет все поля класса за одну операцию? Возможно ли, что вы будете передавать разные списки 'ids' для каждого метода? Метод 'Zip' может помочь, если вы всегда возвращаете объекты для одинаковых идентификаторов в том же порядке в обоих случаях. –
@Preston - я не могу использовать Zip, так как мои два списка не одинаковой длины. Я использовал соединение для решения моей проблемы. Пожалуйста, см. Ниже – Ziggler