2

私はまだ学んでいます(ベイビーステップ)。関数をいじり、データテーブルを処理するためのより適切な方法を見つけたいと思っています。

プログラムの存続期間を通じてより一般的に使用されるテーブルについては、それらをデータテーブルにダンプし、代わりにクエリを実行します。私が望んでいるのは、たとえば列 x = "this" のデータテーブルをクエリし、列 "y" の値を直接リストに変換して呼び出し元に返すことです。

    private List<string> LookupColumnY(string hex)
    {
        List<string> stringlist = new List<string>();
        DataRow[] rows = tblDataTable.Select("Columnx = '" + hex + "'", "Columny ASC");
        foreach (DataRow row in rows) { stringlist.Add(row["Columny"].ToString()); } 
        return stringlist;
    }

少し簡単な方法を知っている人はいますか?これは簡単だと思いますが、 foreach ループを介した反復がパフォーマンスに影響しない場合は、これらを十分に行うかどうか疑問に思っています。ティア!

4

1 に答える 1

4

LINQ を使用してこれを簡素化できます。

public IEnumerable<string> LookupColumnY(string hex)
{
     return tblDataTable
                .Select("Columnx = '" + hex + "'", "Columny ASC")
                .Select(row => row["Columny"].ToString() );
}

リストを返す必要がある場合は、次を追加できますToList()

public IList<string> LookupColumnY(string hex)
{
     return tblDataTable
                .Select("Columnx = '" + hex + "'", "Columny ASC")
                .Select(row => row["Columny"].ToString() )
                .ToList();
}

ただし、これでも選択範囲内の各行が繰り返されます。

于 2010-04-12T17:09:24.280 に答える