este código:¿Cómo puedo definir variables en LINQ?
string[] files = {"test.txt",
"test2.txt",
"notes.txt",
"notes.doc",
"data.xml",
"test.xml",
"test.html",
"notes.txt",
"test.as"};
files.ToList().ForEach(f => Console.WriteLine(
f.Substring(
f.IndexOf('.') + 1,
f.Length - f.IndexOf('.') - 1
)
));
produce esta lista:
txt
txt
txt
doc
xml
xml
html
txt
as
¿Hay alguna manera de hacer f.IndexOf('.')
una variable de modo que en las consultas LINQ más complejos esto he definidos en ¿un lugar?
Como dice Greg Haya, esto no es LINQ. El código de ejemplo usa una función Lambda. Tienen cierta superposición en la funcionalidad, pero no son las mismas cosas. –
Y, en este ejemplo concreto, puede usar la sobrecarga de subcadena que solo acepta el índice de inicio de subcadena (http://msdn.microsoft.com/en-us/library/hxthx5h6%28VS.80%29.aspx) y devuelve el resto de la cadena. – Groo