sintaxis - ordenar linq c#
Seleccione una sola columna del conjunto de datos con LINQ (3)
Acabo de entender todo esto de LINQ y parece que estoy atascado en el primer obstáculo.
Tengo un datatable como tal:
OrderNo LetterGroup Filepath
----------- ----------- --------------------------------------------------
0 0 Letters/SampleImage.jpg
0 0 Letters/UKPC7_0.jpg
0 0 Letters/UKPC8_0.jpg
Lo que necesito es conseguir todos los filepaths de la columna Filepath en una matriz de String. Pensé que LINQ sería perfecto para esto (¿tengo razón?), Pero parece que no puedo construir la consulta correcta.
¿Alguien puede proporcionar algunos ejemplos de código que me orienten en la dirección correcta? He buscado alrededor, pero parece que no estoy llegando a ninguna parte.
Existen métodos de extensión que facilitan mucho el trabajo con conjuntos de datos:
using System.Data.Linq;
var filePaths =
from row in dataTable.AsEnumerable()
select row.Field<string>("Filepath");
var filePathsArray = filePaths.ToArray();
También puede usar la sintaxis del método para ponerlo en una declaración:
var filePaths = dataTable
.AsEnumerable()
.Select(row => row.Field<string>("Filepath"))
.ToArray();
Si desea utilizar LINQ en todo momento, configure su base de datos y cree un objeto de contexto. Entonces deberías poder hacer algo como esto:
var filepaths = from order in _context.Orders
select order.Filepath;
Esto es asumiendo que su tabla para la fila se denomina Órdenes, que supongo que por su primer nombre de columna de orden. Si desea devolver un conjunto de números de pedido y usarlos más tarde para saber de dónde proviene la ruta del archivo, podría hacer algo como esto:
var results = from order in _context.Orders
select new
{
order.OrderNo,
order.Filepath
}
Esto le daría un nuevo tipo anónimo que contenía ambos valores como propiedades.
string[] filePaths = (from DataRow row in yourDataTable.Rows
select row["Filepath"].ToString()).ToArray();