存储并访问列表中的列表

时间:2012-05-21 21:22:27

标签: c# linq list

我需要根据两个列表中的字段将2个列表合并到一个列表中,然后访问合并列表中的信息。

伪代码示例

List1.merge;
List2.merge2;
MergedList = List1.merge join List2.merge2;
MergedList.Merge2 or MergedList.Any Field in List

4 个答案:

答案 0 :(得分:0)

Concat怎么样?

var myList = list1
    .Where(l => list2
        .Any(l2 => l2.Field == l.Field)
    .Concat(list2
        .Where(l2 => list
            .Any(l => l.Field == l2.Field))
    .ToList();

答案 1 :(得分:0)

以下是您应该能够根据需要进行调整的基本示例:

using System.Linq; // Add these two lines to the using statements 
                   // at the top of your file
using System.Collections.Generic;

var l1 = new List<Uri>() { new Uri("http://www.facebook.com"), new Uri("http://www.yahoo.com"), new Uri("http://www.google.com") };
var l2 = new List<Uri>() { new Uri("http://www.google.com"), new Uri("http://www.nytimes.com"), new Uri("http://www.facebook.com") };

var q = from Uri uri1 in l1 
        join Uri uri2 in l2 on uri1.Host equals uri2.Host select uri2;

var commonUris = q.ToList();  // Result

关键线是equals

周围的线

请注意,如果任何一个列表中的任何项目出现多次,则可能无法产生预期结果。

答案 2 :(得分:0)

简单的lambda加入怎么样?

list1.Join(list2, l1 => l1.Field, l2 => l2.field, (l1,l2) => new SomeORAnonymousObjectType { ListItem1 = l1, ListItemType2 = l2 }).ToArray().ToList().ToEnumerable();

答案 3 :(得分:0)

现在解决了这个问题。我创建了一个引用类的列表,它存储了我的信息,一旦我这样做,我就能够管理和访问我需要的所有内容。