Y a-t-il un moyen de comparer deux listes de chaînes (quelle que soit la sensibilité de cas) ou dois-je écrire un code personnalisé pour une telle comparaison? Je veux aussi supprimer des éléments non correspondants de mon dictionnaire.
par exemple p> maintenant après la comparaison, je veux avoir uniquement "valeur1" et "valeur2" dans Cordialement,
JS P> P> lst2 code>. p>
3 Réponses :
Vous pouvez utiliser la méthode Reportez-vous à la documentation MSDN pour des exemples: http://msdn.microsoft. com / fr-US / bibliothèque / bb460136.aspx p>
Reportez-vous à la réponse de DYPPL pour la mise en œuvre de la comparaison insensible au cas. P> énumérable.InterSect p>
Nah, voir ma réponse, vous pouvez utiliser stringcomparer code>
Merci dyppl! Mise à jour de la réponse. C'était vraiment kool.
Vous pouvez utiliser la méthode de l'extension code> code>. Pour le faire étudier insensible, vous pouvez utiliser un iéquitycomparer:
class Program { static void Main(string[] args) { List<string> lst1 = new List<string>(); List<string> lst2 = new List<string>(); CaseInsensitiveEquityComparer comparer = new CaseInsensitiveEquityComparer(); var result = lst1.Intersect(lst2, comparer); } } class CaseInsensitiveEquityComparer : IEqualityComparer<string> { public bool Equals(string x, string y) { return String.Compare(x,y,true,CultureInfo.CurrentCulture) == 0; } public int GetHashCode(string obj) { return obj.GetHashCode(); } }
Comparer des chaînes par touppper code> -ing-les? Mauvaise idée dans c #, il suffit d'utiliser
string.carefare code> avec les options correspondantes
@DYPL, vrai - mais se précipita. Corrigé-le maintenant;)
Vous pouvez utiliser linq intersect méthode.
lst2 = lst1.Intersect(lst2, StringComparer.InvariantCultureIgnoreCase).ToList();
Veuillez réparer votre exemple, il devrait être LST1 et LST2