2012-04-10 5 views
-4

У меня есть два списка тестов, некоторые из которых содержат свойства (ключ, значение). Позволяет называть их list-A & list-B.Объединить два списка

Я хочу сделать следующее (только на list-B):

1) добавить тест, который list-A имеет и list-B нет (со всеми свойствами).

2) добавить свойство, которое имеет list-A и list-B не

3) удалить свойство, list-B имеет и list-A не делает

, как я могу это сделать в C# с менее чем 4/5 для петли?

+0

Возможный дубликат http://stackoverflow.com/questions/720609/merge-two-object-lists-with-linq –

ответ

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); 
     } 
    } 
    } 
} 
Смежные вопросы