104 votes

Comment comparer deux listes<String> l'un à l'autre ?

Disons qu'il y a

 List<string> a1 = new List<string>();

List<string> a2 = new List<string>();

Y a-t-il moyen de faire comme ça ?

 if (a1 == a2) 
{

}

188voto

Mark Byers Points 318575

Si vous voulez vérifier que les éléments à l'intérieur de la liste sont égaux et dans le même ordre, vous pouvez utiliser SequenceEqual :

 if (a1.SequenceEqual(a2))

Voir le fonctionnement en ligne : ideone

1voto

Sunil Thakur Points 14
    private static bool CompareDictionaries(IDictionary<string, IEnumerable<string>> dict1, IDictionary<string, IEnumerable<string>> dict2)
    {
        if (dict1.Count != dict2.Count)
        {
            return false;
        }

        var keyDiff = dict1.Keys.Except(dict2.Keys);
        if (keyDiff.Any())
        {
            return false;
        }

        return (from key in dict1.Keys 
                let value1 = dict1[key] 
                let value2 = dict2[key] 
                select value1.Except(value2)).All(diffInValues => !diffInValues.Any());
    }

-1voto

Vous pouvez vérifier de toutes les manières ci-dessous pour une liste

 List<string> FilteredList = new List<string>();
//Comparing the two lists and gettings common elements.
FilteredList = a1.Intersect(a2, StringComparer.OrdinalIgnoreCase);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X