Demonstro aqui mais alguns exemplos úteis para trabalhar com coleções em C# 3.0, em especial descobrir Intersões, fazer união e as Exceções entre uma coleção e outra. Em alguns casos é mais fácil de usar do que NameValueCollection para resolver esse tipo de problema:
#region Intersect
var listOne = new List() { 1, 2, 3, 4, 5 };
var listTwo = new List() { 3, 4, 5, 6, 7 };
var intIntersect = listOne.Intersect(listTwo);
foreach (var i in intIntersect)
{
Console.WriteLine(i);
}
#endregion
#region Except
var listThree = new string[] { "Pete", "On", "Software" };
var listFour = new string[] { "Joel", "On", "Software" };
var stringExcept = listThree.Except(listFour);
foreach (var s in stringExcept)
{
Console.WriteLine(s);
}
#endregion
#region Union
var listFive = new string[] { "Pete", "Pete", "On", "Software" };
var listSix = new string[] { "Joel", "On", "Software", "Software" };
var uniqueStrings = listSix.Union(listFive);
foreach (var s in uniqueStrings)
{
Console.WriteLine(s);
}
#endregion
E não se esqueçam dos Converters, Comparison, Predicates e Actions do C# 2.0 (Explorando alguns Delegates do C# 2.0: Predicates, Converter, Comparison e Action).
Até a próxima!