Ho il seguente metodo:.NET ha un modo per verificare se l'Elenco a contiene tutti gli elementi in Elenco b?
namespace ListHelper
{
public class ListHelper<T>
{
public static bool ContainsAllItems(List<T> a, List<T> b)
{
return b.TrueForAll(delegate(T t)
{
return a.Contains(t);
});
}
}
}
Lo scopo è quello di determinare se un elenco contiene tutti gli elementi di un altro elenco. Mi sembra che qualcosa di simile sarebbe già stato incorporato in .NET, è il caso e sto duplicando funzionalità?
Modifica: Le mie scuse per non aver dichiarato in anticipo che sto usando questo codice su Mono versione 2.4.2.
Vedi anche https://stackoverflow.com/questions/332973/check-whether-an-array-is-a -subset-of-another –
L'algoritmo è quadratico O (nm). Se gli elenchi sono ordinati, è possibile testare se uno è un sottoinsieme di un altro nel tempo O (n + m). –