0

For Eachループを使用する代わりに、DataTableの単一の列からすべてのアイテムを抽出する方法はありますか?

たとえば、次の例では、DataTableの単一の列の各行からKeyValuePairのリストを作成します

List<KeyValuePair<string, double>> extract = new List<KeyValuePair<string, double>>();
foreach (DataRow item in _dataTableTest.Rows)
{
    KeyValuePair<string, double> selection = (KeyValuePair<string, double>)item["Selection"];
    extract.Add(selection);
}

これを行うためのより良い方法および/またはより迅速な方法はありますか?

4

1 に答える 1

4

あなたが使うことができますLinq-To-DataTable

List<KeyValuePair<string, double>> extract = _dataTableTest.AsEnumerable()
          .Select(r => r.Field<KeyValuePair<string, double>>("Selection"))
          .ToList();

追加する必要がusing System.Linq;あり、これはパフォーマンスの点で「迅速」ではないことに注意してください。また、内部でループを使用します。

于 2012-10-05T22:25:32.113 に答える