Est-il un moyen pour avoir la différence entre deux ensembles d'objets en c#

Je veux obtenir la différence entre deux ensembles d'entiers en c#. Compte tenu de la s1 et la s2, je veux le retour de ces entiers qui sont dans s1 et pas dans s2. Je peux faire quelque chose comme:

    List<int> s1 = new List<int>();
    List<int> s2 = new List<int>();

    foreach (int i in s1)
    {
        if (s1.Contains(i))
        {
            //
        }
        else
        {
            //
        }
    }

Mais je me demandais si quelqu'un peut indiquer quelque chose de plus propre. Je voudrais faire quelque chose comme

List<int> omitted = s1.Difference(s2);

Vous ne savez pas si il existe une méthode ou d'un LINQ construire que quelqu'un pourrait être en mesure de préciser? Merci.

OriginalL'auteur SiC | 2009-04-30