只是了解所有这些LINQ的东西,似乎我陷入了第一道障碍。
我有一个数据表:
OrderNo LetterGroup Filepath
----------- ----------- --------------------------------------------------
0 0 Letters/SampleImage.jpg
0 0 Letters/UKPC7_0.jpg
0 0 Letters/UKPC8_0.jpg
我需要的是将Filepath列中的所有文件路径都放入String数组中。我认为LINQ对此是完美的(我是对的吗?),但似乎无法构造正确的查询。
任何人都可以提供一些能够指向正确方向的代码示例吗?我四处寻找 - 但似乎没有到达任何地方。
答案 0 :(得分:31)
有一些扩展方法可以更轻松地处理数据集:
using System.Data.Linq;
var filePaths =
from row in dataTable.AsEnumerable()
select row.Field<string>("Filepath");
var filePathsArray = filePaths.ToArray();
您还可以使用方法语法将其放在一个语句中:
var filePaths = dataTable
.AsEnumerable()
.Select(row => row.Field<string>("Filepath"))
.ToArray();
答案 1 :(得分:11)
string[] filePaths = (from DataRow row in yourDataTable.Rows
select row["Filepath"].ToString()).ToArray();
答案 2 :(得分:2)
如果要一直使用LINQ,请设置数据库并创建上下文对象。然后你应该可以做这样的事情:
var filepaths = from order in _context.Orders
select order.Filepath;
这假设您的行表名为Orders,我猜您的第一个订单列名称。如果您想要返回一组订单号以便稍后使用以了解文件路径的来源,您可以执行以下操作:
var results = from order in _context.Orders
select new
{
order.OrderNo,
order.Filepath
}
这将为您提供一个新的匿名类型,其中包含这些值作为属性。