2013-10-27 111 views
0

我有两个列表,都有一个ID(唯一),我想要做的就是通过它的独特属性将它们分组,并获得包含这两个列表的新列表。LINQ如何将两个列表分组到一个列表中?

list1 group by list2 -> get list3 

这里是我的代码:

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

我需要得到榜第三,这将containt两份名单,我认为小组通过他们的ID,但如何把它写在LINQ?

var both = ...? 

在此先感谢。

+0

你想组或组合? – scartag

+0

@scartag我想分组。 –

+0

第二行应该是列表,因为你正在接触动物(动物不是人!)? –

回答

3

我不确定这是你想要的,但看下面。我假设人是动物的一个子类。

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; } 
} 
相关问题