合并两个列表

时间:2012-04-10 12:51:11

标签: c# .net list merge compare

我有两个测试列表,其中一些包含属性(键,值)。 让我们称呼他们为list-A& list-B

我想执行以下操作(仅限list-B):

1)添加list-A所拥有且list-B没有的测试(包含所有属性)。

2)添加list-A具有且list-B不具有

的属性

3)删除list-B拥有且list-A没有

的属性

如何在C#中使用少于4/5的for循环?

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题,只需要两个循环......但是什么是属性,你的情况下测试是什么?关键是测试,价值是属性?

foreach(type key in a.keys)
{
  //a1 I think. adds a key not in b
  if(!b.ContainsKey(key))
  {
    b.Add(key, a[key]);
  }
  else
  {
    //a2 I think... I suppose that the value is a list of properties
    foreach(type prop in a[key])
    {
      if(!b[key].Contains(prop))
      {
        b[key].Add(prop);
      }
    }
  }
}