Question:
Comment utiliser l'interface ICOMParer en C # pour implémenter le type naturel de l'objet FileInfo?
Solution:
Afin d'atteindre le tri naturel, nous pouvons utiliser la fonction intégrée StrcmplogicalW dans l'API Windows.
implémenter:
Tout d'abord, créez une classe interne SafenatingMethods pour supprimer l'avertissement de sécurité du code non host:
Ensuite, définissez une classe NaturStringComparer pour implémenter l'interface ICOMPARER:
[SuppressUnmanagedCodeSecurity] internal static class SafeNativeMethods { [DllImport("shlwapi.dll", CharSet = CharSet.Unicode)] public static extern int StrCmpLogicalW(string psz1, string psz2); }
Enfin, créez une classe NaturFileInfonameComparer, en utilisant l'ordre d'ordre naturel pour comparer l'objet FileInfo:
public sealed class NaturalStringComparer : IComparer<string> { public int Compare(string a, string b) { return SafeNativeMethods.StrCmpLogicalW(a, b); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!