-1

(この質問の目的のために) 2 つの列を持つテーブルを使用しています。1 つの列は、1、2、3、4、または 5 の値を取ることができます (単に、もう一方の列のデータのカテゴリを示すためです。5 つのカテゴリが可能です)。もう一方の列には、「Grant1」などの文字列が含まれているだけです。

テキスト列のタイトルは「タイトル」、整数列のタイトルは「カテゴリ」です。

私がする必要があるのは、Category 列に基づいて行を並べ替え、各行のすべてのデータを C# のリストに入れることです。このようにして、後でリストを使用して、そのカテゴリに該当するすべてのタイトル データを確認できます。

これは私がこれまでに持っているものです:

DataTable dt = AnimalGrants.Tables["AnimalGrants"];
    string columnName = "Title";
    List<string> ListOfAnimalGrantTitles = new List<string>();
    int i = 0;
    foreach (DataRow dr in dt.Rows)
    {
        ListOfAnimalGrantTitles.Add(dr.Table.Columns[i].ToString());
    }

私が持っているものが正しく機能していません...アップロードする前に、これが機能することを確認したいと思います。SQL または C# の専門家は、これを達成する方法を理解するのに役立ちますか? 私はここで良いスタートを切ったと思いますが、構文のバグで立ち往生することを恐れています.

DataSet AnimalGrants = tp.GetItems("CFHudsonGrants", "WHERE Category = 1;", "");
4

1 に答える 1

0

私は少し混乱していますが、以下のコードは列 1 の値のリストを作成する必要がありますが、そのリストを列 2 の値で並べ替えます。

DataTable dt = AnimalGrants.Tables["AnimalGrants"];
string columnName = "Title";
List<string> ListOfAnimalGrantTitles = new List<string>();
int i = 0;
foreach (DataRow dr in dt.Rows.Cast<DataRow>().OrderBy(t => t[1]))
{
    ListOfAnimalGrantTitles.Add(dr[0]);
}

そうは言っても、SQLクエリでこれをソートする方がおそらく良いでしょう...

于 2013-07-25T19:09:33.477 に答える