我需要根据两个列表中的一个字段将 2 个列表合并为一个列表,然后访问合并列表中的信息。
示例伪代码
List1.merge;
List2.merge2;
MergedList = List1.merge join List2.merge2;
MergedList.Merge2 or MergedList.Any Field in List
怎么样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();
这是一个基本示例,您应该能够根据需要进行调整:
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
请注意,如果任何项目在任何一个列表中多次出现,这可能不会产生预期的结果。
一个简单的 lambda 连接怎么样?
list1.Join(list2, l1 => l1.Field, l2 => l2.field, (l1,l2) => new SomeORAnonymousObjectType { ListItem1 = l1, ListItemType2 = l2 }).ToArray().ToList().ToEnumerable();
现在这个问题已经解决了。我创建了一个引用一个类的列表,它存储了我的信息,一旦我这样做了,我就能够管理和访问我需要的一切。