Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Options for migration of string comparisons (helper method?)

Abierto
#1,034 6 comentarios 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
csharp, visualbasic
Área
tooling

Línea de trabajo

El issue no nombra ningún archivo, prueba ni punto de entrada específicos. Empieza rastreando cómo Option Compare Text se convierte en CultureInfo.CurrentCulture.CompareInfo.Compare en el código fuente de CodeConverter y, a continuación, determina si el resultado de la comparación puede configurarse o representarse mediante un método auxiliar; el trabajo estará terminado cuando haya un enfoque acordado y un alcance de implementación asociado.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement

Perhaps this should not be an issue or a feature request but I think it's worthy of discussion, and we can always delete later if needed.

I'm about to Migrate perhaps 50k to 100k lines of code from VB to C#. Almost all of it has Option Compare Text.

Now when we migrate, code like this

If kv.Key = sVariableName Then

It gets converted to this:

if (CultureInfo.CurrentCulture.CompareInfo.Compare(kv.Key ?? "", sVariableName ?? "", CompareOptions.IgnoreCase | CompareOptions.IgnoreKanaType | CompareOptions.IgnoreWidth) == 0)

I'm sure I'm not the only one who doesn't want to live with that kind of code going forward, especially in a large project.

Ideally I would like improve the syntactic elegance using something like an Extension method

    [Extension]
    public static bool EqualsIgnoreCase(this string str1, string str2)
    {
        return string.Equals(str1 ?? "", str2 ?? "", StringComparison.OrdinalIgnoreCase);
    }

Then the migrated c# would be

                if (kv.Key.EqualsIgnoreCase(sVariableName)) {

I would have liked to overload the string == operator but that doesn't sound possible.

So, before I start digging in the CodeConverter source code for how to implement this, are there any other options or ways to influence the conversion as above, and does anyone else feel that there would be value in changing the code if appropriate for something like the above ?

Lenguaje dominante
C#
Estrellas
914
Forks
242
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de icsharpcode/CodeConverter

Todos los issues de icsharpcode/CodeConverter

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.