タイプのリストがいくつかあります:
public List<KeyValuePair<KeyValuePair<string, string>,
List<KeyValuePair<string, string>>>> rawComparisonObject;
リストを構築する KeyValuePair の「キー」に従って、これらのリストの共通部分を取得したい
私は試しました:
List2 = list1.Intersect(list2).Intersect(list3)......
etc ですが、ご覧のとおり、必要なものではなく、すべての KeyValuePair 変数と交差しています。
KeyValuePairキーのIntersectリストも試し ましたか?
次の形式で:
public List<List<KeyValuePair<KeyValuePair<string, string>, List<KeyValuePair<string, string>>>>> getCommon(List<ResourceInformation> input)
{
List<List<KeyValuePair<KeyValuePair<string, string>, List<KeyValuePair<string, string>>>>> rawComparisonObject =
new List<List<KeyValuePair<KeyValuePair<string,string>,List<KeyValuePair<string,string>>>>>();
foreach (ResourceInformation item in input)
{
rawComparisonObject.Add(item.rawComparisonObject);
}
foreach (List<KeyValuePair<KeyValuePair<string, string>, List<KeyValuePair<string, string>>>> item in rawComparisonObject)
{
}
List<List<KeyValuePair<KeyValuePair<string, string>, List<KeyValuePair<string, string>>>>> common =
new List<List<KeyValuePair<KeyValuePair<string, string>, List<KeyValuePair<string, string>>>>>();
for (int i = 0; i < (rawComparisonObject.Count-1); i++)
{
var keysFromB = new HashSet<KeyValuePair<string, string>>(rawComparisonObject[i].Select(x => x.Key));
var result = rawComparisonObject[i+1].Where(x => keysFromB.Remove(x.Key));
common.Add(result.ToList());
}
return common;
}
非常に誤った値を返しました。これを行う簡単な方法はありますか?
オブジェクト間の比較の結果として共通のオブジェクトを取得するために、リンクされたデータ作業でこのデータ構造を使用します
例: バットマン vs. インセプション
返す必要があります:
タイプ : 映画 | 映画
出 演 :クリスチャン・ベール | レオナルド・ディカプリオ
もちろん、すべてが URI リンクで強調表示されます。そのため、URI 用に 1 つ、ラベル用にもう 1 つ keyValuePair が必要です。
この複雑なデータ構造を説明するために最善を尽くしました。それが十分に明確であることを願っています