es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Buscar palabras almacenadas en el portapapeles utilizando C# y enviar las palabras buscadas al portapapeles.

Soy nuevo en C# y necesito ayuda para dar formato a este código que intento leer del portapapeles palabras específicas y luego devolverlo al portapapeles. Será necesario tener un número infinito de palabras para agregar en la lista de cadenas de búsqueda.

Text = Clipboard.GetText();
string Text = "Texto para analizar en busca de palabras, silla, mesa";
List<string> palabras = new List<string> { "silla", "mesa", "escritorio" };
var resultado = palabras.Where(i => Text.Contains(i)).ToList();
TextOut = Clipboard.SetText();

\devolverá “silla, mesa” al portapapeles.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para formatear este código, puedes utilizar bloques de código en Markdown. Para ello, rodea tu código con tres comillas invertidas (`) al principio y al final del bloque de código.

    Aquí tienes cómo debería verse el código formateado:

    Text = Clipboard.GetText();
    
    string Text = "Texto para analizar palabras, silla, mesa";
    
    List<string> words = new List<string> { "silla", "mesa", "escritorio" };
    
    var result = words.Where(i => Text.Contains(i)).ToList();
    
    TextOut = Clipboard.SetText();
    
    //se envía "silla, mesa" al portapapeles
    

    Además, hay un par de problemas con el código en sí que deben ser corregidos:

    1. Has declarado Text dos veces, una vez antes y otra después de obtener el texto del portapapeles. Para solucionar esto, simplemente elimina la primera línea (Text = Clipboard.GetText();) ya que no es necesaria.
    2. No estás configurando el texto en el portapapeles de la manera correcta. Para solucionar esto, cambia TextOut = Clipboard.SetText(); a Clipboard.SetText(string.Join(", ", result));. Esto unirá los elementos en result con una coma y lo establecerá como texto en el portapapeles.

    Aquí tienes el código corregido:

    string Text = "Texto para analizar palabras, silla, mesa";
    
    List<string> words = new List<string> { "silla", "mesa", "escritorio" };
    
    var result = words.Where(i => Text.Contains(i)).ToList();
    
    Clipboard.SetText(string.Join(", ", result));
    
    //se envía "silla, mesa" al portapapeles
    

    ¡Espero que esto te ayude!

Comments are closed.