DOBON.NETプログラミング道掲示板

No35678 の記事


■35678 / )  ロジックの実現お願い
□投稿者/ あばば無人君 一般人(2回)-(2025/07/22(Tue) 21:24:46)
  • アイコン環境/言語:[Windows10 Home(19045.5917) 64bit、.NetFramework_4.8.1] 
    分類:[.NET] 

    約1年半ぶりの投稿となります。宜しくお願いします。

    掲題の件ですが、以下の仕様を実現するロジックを組むorヒントが欲しいです。
    (ロジックなんて自分で考えろ!と言われるのは百も承知ですが、
    この件に10Hほど掛けても未だ光明が見えず、致し方なくの投稿です)

    ※書き込みのルール「丸投げした投稿」に該当するのでしたらご指摘ください。
     諦めます。


    ではここから仕様

    以下のカラムを持つDataTable「dtSyuyakumae」があります。
    全カラム数値で、後述のデータパターン(集約前)の値が入っています。
    ・親分類
    ・子分類
    ・孫分類
    ・他分類

    これを以下のクラスに格納してListに積みたいのですが、その際に
    「親子孫の値に0が含まれるなら複数行を集約&空値にしてクラスにセットする」
    「ただし他分類が異なるならそれぞれの行でクラスにセットする」
    というのが条件になります。
    (言葉では分かりにくいと思うのでデータパターン(集約後)をご確認下さい)

    クラス
    private class BunruiInfo
    {
    /// <summary>親分類</summary>
    public string OBunrui { get; set; } = string.Empty;
    /// <summary>子分類</summary>
    public string KBunrui { get; set; } = string.Empty;
    /// <summary>孫分類</summary>
    public string MBunrui { get; set; } = string.Empty;
    /// <summary>他分類</summary>
    public string HBunrui { get; set; } = string.Empty;
    }

    処理部分
    private void button1_Click(object sender, EventArgs e)
    {
    // このDataTableが集約前のデータa〜jいずれかとなる
    DataTable dtSyuyakumae = GetSyuyakumaeData();

    // このリストに集約後のデータを積みたい
    var bunruiList = new List<BunruiInfo>();

    ★ここで集約するロジックが実現できない!★


    }


    パッと見だと実現できそうな感じがするのですが、いざやってみると
    「あちらを立てればこちらが立たず」な状態となってしまい、
    どうにもならなくなったのでご助力を依頼している状態です。

    ロジックの実現お願いなど「ふざけるな!」と言われそうで恐縮ですが
    自分(と周りのメンバー)ではどうにもできないのでご協力の程、お願い致します。


    ここからデータパターン
    ※インデントを調整していますが等幅フォントでないと正しく表示されないかも。
     お手数ですがメモ帳などのテキストエディタに張り付けてご確認ください。

      集約前                 集約後
    a  親分類 子分類 孫分類 他分類   →   親分類 子分類 孫分類 他分類
      1   1   1   1         1          1
      1   0   0   1


    b  親分類 子分類 孫分類 他分類   →   親分類 子分類 孫分類 他分類
      1   1   1   1         1   1       1
      1   1   0   1


    c  親分類 子分類 孫分類 他分類   →   親分類 子分類 孫分類 他分類
      1   1   1   1         1   1   1   
      1   1   1   0


    d  親分類 子分類 孫分類 他分類   →   親分類 子分類 孫分類 他分類
      1   1   0   1         1   1       1
      2   0   0   1         2          1


    e  親分類 子分類 孫分類 他分類   →   親分類 子分類 孫分類 他分類
      1   1   0   1         1   1       1
      1   2   0   1         1   2       1


    f  親分類 子分類 孫分類 他分類   →   親分類 子分類 孫分類 他分類
      1   1   1   1         1   1   1   1
      1   0   0   2         1          2


    g  親分類 子分類 孫分類 他分類   →   親分類 子分類 孫分類 他分類
      1   0   0   2         1          2
      1   1   0   1         1   1       1
      1   1   1   1         1   2       1
      1   2   0   1


    h  親分類 子分類 孫分類 他分類   →   親分類 子分類 孫分類 他分類
      1   1   1   1         1   1   1   1
      0   0   0   2                   2


    i  親分類 子分類 孫分類 他分類   →   親分類 子分類 孫分類 他分類
      0   0   0   2                   2
      1   1   1   1         1   1   1   1
      2   0   0   3         2          3
      2   1   1   2         2   1   1   2


    j  親分類 子分類 孫分類 他分類   →   親分類 子分類 孫分類 他分類
      1   1   1   1         1   1   1   1
      1   2   0   1         1   2       1

違反を報告
返信 削除キー/


Mode/  Pass/


- Child Tree -