-1

並べ替えられたデータテーブルから並べ替えられたリストに入力しますが、並べ替えられたリストに入力した後、順序が変更されます

     for (int i = 0; i < d.Rows.Count; i++)
        {
              int EmpID = Convert.ToInt32(d.Rows[i]["Fd_Emp"].ToString().Trim());
            string type=d.Rows[i]["Fd_Type"].ToString().Trim();
            emp.Add(EmpID, type);

        }

私のデータテーブルの順序は 31e,32e,33e,7i です

私のソートリストの順序は7i、31e、32e、33eになります

ソート済みリストでデータテーブルの順序を維持する方法

4

2 に答える 2

1

ソートされたリストを使用するアイデアは、追加された要素をソートされた順序で保持することです。これは、データベース内の要素がソートされていない (またはソートされたリストのソートと同じ方法でソートされていない) 場合、ソートされたリスト内の要素の順序が異なることを意味します。

DB 内の値が並べ替えられていて、並べ替えられたリストから同じ順序を取得したい場合は、要素にカスタムの並べ替え方法を提供できます。この方法では、DB がその値に使用する比較ロジックを複製します。

于 2012-04-13T16:22:48.637 に答える
0

クラスはSortedList<T>、指定された比較関数に基づいて要素をソートします。提供されていない場合は、タイプのデフォルトの比較関数に基づいて要素をソートします。ただし、並べ替えロジックは、並べ替えられたリストにないデータに依存します(「クエリを別の列で並べ替えた」と言ったため)。したがって、リストを並べ替えることはできません。

クラスは要素のList<T>順序付けられたシーケンスを保持します。順序は、それらが追加される順序です。つまり、List<T>要素を同じ順序に保ちます。要素をデータベースから取得した順序を保持する必要があるため、を使用する必要がありますList<T>

申し訳ありませんが、ロジックがあるので、ソートされたリストを使用する必要があります

使用する必要がある場合SortedList<T>は、データの順序付けに使用した列の値を参照できるように、複雑な方法で使用する必要があります。そのためのいくつかの可能性があります。しかし、私はへの依存関係を変更する傾向がはるかに強いでしょうSortedList<T>なぜ使用する必要があるのSortedList<T>ですか? より多くのコンテキストを提供できれば、より大きな問題の解決を支援できる可能性があります。あなたがそれを減らした小さな問題は、過度に複雑に思えます。

于 2012-04-13T16:44:55.603 に答える