2013-10-27 3 views
0

У меня есть два списка, оба имеют идентификатор (уникальный), все, что я хочу сделать, это группировать их по уникальному свойству и получить новый список, содержащий оба списка.LINQ Как группировать по двум спискам в один список?

list1 group by list2 -> get list3 

Вот мой код:

List<LeadDocumentStatusQuerySequence> list1 = 
         client.GetLeadDocumentStatusQuerySequence(); 
List<LeadDocumentStatusQueryDeclarationDetails> list2 = 
         client.GetLeadDocumentStatusQueryDeclarationDetails(); 

Мне нужно получить третий список, который будет containt оба списка, я думал, группировать ими по идентификатору, но как писать в LINQ?

var both = ...? 

Заранее спасибо.

+0

вы пытаетесь сгруппировать или объединить? – scartag

+0

@scartag Я пытаюсь сгруппировать. –

+0

Должна ли вторая строка быть списком , поскольку вы получаете животных (животные не являются людьми!)? –

ответ

3

Я не уверен, что это то, что вы хотели бы, но см. Ниже. Я предполагаю, что люди являются подклассом Animal.

var combinedList = new List<Animal>(); 

combinedList.AddRange(people); 
combinedList.AddRange(animals); 

var grouped = combinedList.GroupBy(y => new {y.ID}).ToList(); 
1

Не ясно, каким образом вы собираетесь манипулировать данными, но с использованием CompositeCollection может быть способ группировки данных вместе. Он используется в WPF для объединения различных коллекций для отображения на экране.

Обратите внимание, что Name в классах ниже, не связанные непосредственно в # компилятор C смысле, так что нет никакой прямой связи между ними:

void Main() 
{ 

    var myAnimals = new List<Animal>() { new Animal() { Name = "Zebra" }, 
             new Animal() { Name = "Cobra" }} ; 

    var myPeople = new List<Person>() { new Person() { Name = "Snake Pliskin" }, 
             new Person() { Name = "OmegaMan" }}; 


    // Uses System.Windows.Data 
    var FavoriteThings = new CompositeCollection(); 

    FavoriteThings.Add(myAnimals); 
    FavoriteThings.Add(myPeople); 


} 

// Define other methods and classes here 
public class Animal 
{ 
    public string Name { get; set; } 
} 


public class Person 
{ 
    public string Name { get; set; } 
} 
Смежные вопросы