Вы можете использовать словарь, чтобы сделать это ...
В конце каждый элемент в словаре сообщит вам, сколько элементов каждого вида было удалено или добавлено.
Это будет указано с помощью счетчика, а не простого флага с 3 состояниями ... потому что вы, возможно, добавили или удалили повторяющиеся элементы ... что если вы вставите 3 AAA
во второй набор.
string[] col1 = new string[] { "AAA", "BBB", "CCC" };
string[] col2 = new string[] { "BBB", "CCC", "DDD" };
Dictionary<string, int> colDic = new Dictionary<string, int>();
foreach (var item in col1)
{
int num;
if (colDic.TryGetValue(item, out num))
colDic[item] = num - 1;
else
colDic[item] = -1;
}
foreach (var item in col2)
{
int num;
if (colDic.TryGetValue(item, out num))
colDic[item] = num + 1;
else
colDic[item] = 1;
}
Конечный результат будет выглядеть так:
AAA = -1
BBB = 0
CCC = 0
DDD = 1