このすべてのLINQの問題を回避するだけで、最初のハードルで立ち往生しているように見えます。
私はそのようなデータテーブルを持っています:
OrderNo LetterGroup Filepath
----------- ----------- --------------------------------------------------
0 0 Letters/SampleImage.jpg
0 0 Letters/UKPC7_0.jpg
0 0 Letters/UKPC8_0.jpg
必要なのは、Filepath列のすべてのファイルパスをString配列に取得することです。これにはLINQが最適だと思いました(そうでしょうか?)が、正しいクエリを作成できないようです。
誰かが私を正しい方向に向けるコードサンプルを提供できますか?私は周りを検索しましたが、どこにも行かないようです。
データセットの操作をはるかに簡単にする拡張メソッドがあります。
using System.Data.Linq;
var filePaths =
from row in dataTable.AsEnumerable()
select row.Field<string>("Filepath");
var filePathsArray = filePaths.ToArray();
メソッド構文を使用して、1つのステートメントに入れることもできます。
var filePaths = dataTable
.AsEnumerable()
.Select(row => row.Field<string>("Filepath"))
.ToArray();
string[] filePaths = (from DataRow row in yourDataTable.Rows
select row["Filepath"].ToString()).ToArray();
LINQをすべて使用する場合は、データベースをセットアップし、コンテキストオブジェクトを作成します。その後、次のようなことができるはずです。
var filepaths = from order in _context.Orders
select order.Filepath;
これは、行のテーブルの名前がOrdersであると想定しています。これは、orderの最初の列名から推測します。ファイルパスがどこから来たのかを知るために後で使用するために、一連の注文番号も返したい場合は、次のようにすることができます。
var results = from order in _context.Orders
select new
{
order.OrderNo,
order.Filepath
}
これにより、これらの値がプロパティとして含まれる新しい匿名型が得られます。