1

2 つのリストのフィールドに基づいて 2 つのリストを 1 つのリストにマージし、マージされたリストの情報にアクセスする必要があります。

疑似コードの例

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

4 に答える 4

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

リストのいずれかでアイテムが複数回出現する場合、これによって期待される結果が得られない可能性があることに注意してください。

于 2012-05-21T21:42:42.053 に答える
0

単純なラムダ結合はどうですか?

list1.Join(list2, l1 => l1.Field, l2 => l2.field, (l1,l2) => new SomeORAnonymousObjectType { ListItem1 = l1, ListItemType2 = l2 }).ToArray().ToList().ToEnumerable();
于 2012-05-21T21:57:58.437 に答える
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();
于 2012-05-21T21:26:42.613 に答える
0

この問題は解決されました。クラスを参照するリストを作成し、情報を保存しました。これを行うと、必要なものすべてを管理およびアクセスできるようになりました。

于 2012-05-23T13:54:13.440 に答える