Al buscar una respuesta a esta pregunta, me he encontrado con otras similares que utilizan LINQ, pero no he podido entenderlas completamente (y, por lo tanto, implementarlas), ya que no estoy familiarizado con ella. Lo que me gustaría, básicamente, es esto:
- Compruebe si algún elemento de una lista contiene una cadena específica.
- Si es así, obtén ese elemento.
Sinceramente, no sé cómo haría para hacer eso. Lo que se me ocurre es esto (no funciona, por supuesto):
if (myList.Contains(myString))
string element = myList.ElementAt(myList.IndexOf(myString));
Sé POR QUÉ no funciona:
myList.Contains()
no regresatrue
, ya que verificará si un elemento completo de la lista coincide con la cadena que especifiqué.myList.IndexOf()
no encontrará una ocurrencia, ya que, como es el caso nuevamente, verificará si hay un elemento que coincida con la cadena.
Aún así, no tengo idea de cómo resolver este problema, pero creo que tendré que usar LINQ como se sugiere en preguntas similares a las mías. Dicho esto, si ese es el caso aquí, me gustaría que el respondedor me explique el uso de LINQ en su ejemplo (como dije, no me he molestado en mi tiempo con C #). Gracias de antemano chicos (y chicas).
EDITAR: se me ocurrió una solución; simplemente recorra la lista, verifique si el elemento actual contiene la cadena y luego configure una cadena igual al elemento actual. Sin embargo, me pregunto, ¿hay una forma más eficiente que esta?
string myString = "bla";
string element = "";
for (int i = 0; i < myList.Count; i++)
{
if (myList[i].Contains(myString))
element = myList[i];
}
myString
, en su ciclo actual, obtendrá el último elemento. Depende de usted si desea encontrar el primero o el último, si solo desea encontrar el primero, luego rompa el ciclo después de encontrar el artículo.