1

odbc を介してデータベースから情報の列を取得しています。列には、1 から 9999999 までの範囲の数値が含まれます。次の方法で、最大 3 つのレベル (親、子、孫) を持つツリービューに値を整理できるようにしたいと考えています。

理想的な構造は次のようになります: AAABBCC
親: AAA0000
子: AAABB00
孫: AAABBCC

ただし、上のレベルが存在しない場合、値はレベルを上に移動します。たとえば、データに次の {1, 101, 200, 204, 1200, 1205, 1304, 290000, 291500, 291502,410204} が含まれているとします。

-- 1
-- 101
-- 200
------- 204
---1200
-------1205
---
1304 --290000
--------291500
------- ----------291502
--410204

どんな助けでも大歓迎です。
マーク

4

1 に答える 1

1

これは本当に非常に単純な問題です。

  1. .ToString("D7")各番号を呼び出して、番号のリストを文字列に変換します。
  2. 変換されたリストを並べ替えます。
  3. SubString(0,3) を取得して、親の値を取得します。
  4. SubString(3,2) を取得して子の値を取得します。
  5. Substring(5,2) を取得して、孫の値を取得します。
  6. 子の値が 00 の場合、新しい TreeNode 親ノードを作成し、それを TreeNodeCollection に追加します。
  7. 子の値が 00 ではなく、孫の値が 00 の場合は、新しい TreeNode childNode を作成し、parentNode に追加します。
  8. 孫の値が 00 でない場合は、新しい TreeNode grandchildNode を作成し、childNode に追加します。

順番にギャップを埋める必要がある場合は、少し追加のロジックが必要ですが、それはかなり簡単です。

于 2012-04-20T23:14:18.130 に答える