DOBON.NETプログラミング道掲示板
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
[
最新記事及び返信フォームをトピックトップへ
]
[ トピック内全4記事(1-4 表示) ] <<
0
>>
■35678
/ inTopicNo.1)
ロジックの実現お願い
▼
■
□投稿者/ あばば無人君
一般人(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
マルチポストを報告
Javascriptを有効にしてください
この投稿がマルチポスト(全く同じ内容の投稿が別の掲示板に投稿されている)の場合は、以下のフォームをご利用いただくと、報告の投稿が簡単に行えます。
このフォームに必要事項を入力後、「返信フォームに入力する」ボタンをクリックすると、このページの下にある
返信フォーム
の項目が自動的に埋まります。実際に投稿するには、その後、返信フォームの「送信」ボタンをクリックしてください。
このフォームを利用しても返信フォームが埋まるだけですので、後で書き直してから投稿することもできます。
「マルチポストされている場所」には、マルチポストされている場所のURLを入力してください。複数のURLを改行区切りで入力することができます。
マルチポストされている場所
オプション
マルチポスト先の投稿が、別人によるいたずらである可能性が高い
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
引用返信
削除キー/
編集
削除
■35679
/ inTopicNo.2)
Re[1]: ロジックの実現お願い
▲
▼
■
□投稿者/ おき
一般人(1回)-(2025/07/23(Wed) 10:34:17)
■
No35678
に返信(あばば無人君さんの記事)
イ.
データパターンcの入出力が、文章で記述されたルールと矛盾しているように見えます。
「データパターンc」か「文章で記述されたルール」かどちらかが誤っていますか?
ロ.
3入力1出力のデータパターンを最低1つは用意した方が良いと思います。文章で記述されたルールから推測は付くのですがデータパターンが無いと確信できません。
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
引用返信
削除キー/
編集
削除
■35680
/ inTopicNo.3)
Re[2]: ロジックの実現お願い
▲
▼
■
□投稿者/ おき
一般人(2回)-(2025/07/23(Wed) 13:21:58)
この3入力のとき、出力はどうなりますか?
0001
1111
1221
→
Column数が4なのはわかりました。一方Row数はパターンデータ通りに4以下なのでしょうか?
Row数の制約があれば教えて下さい。
Row数が必ず4以下で与えられるものとしてパターンデータaが2回繰り返されていたとき出力はどうなりますか?
1111
1001
1111
1001
→
親子孫の定義がなされていません。以下のようなパターンデータのとき出力はどうなりますか?
1011
1011
→
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
引用返信
削除キー/
編集
削除
■35681
/ inTopicNo.4)
Re[3]: ロジックの実現お願い
▲
▼
■
□投稿者/ あばば無人君
一般人(3回)-(2025/07/31(Thu) 07:08:29)
おき さん、ご返答ありがとうございます。
また、返信が遅くなりまことに申し訳ありません。
(投稿の翌日から昨日まで出張が入り返信できませんでした)
以下、ご返信いただいた内容にお答え致します。
> イ.
> データパターンcの入出力が、文章で記述されたルールと矛盾しているように見えます。
> 「データパターンc」か「文章で記述されたルール」かどちらかが誤っていますか?
→データパターンcはあり得ます。文章で記述されたルールが正確ではありませんでした。
まずルールの前に値の意味を記載すべきでした。(スミマセン)
値の意味:
値は0または0以外(正数のみ)で、0は「全て」を意味します。
また(予想がついていたと思いますが)親子孫は、親→子→孫の関係なので
上位で0が出てきたら下位も0となります。
(100はあっても010や001のパターンは無いということ)
ただし他分類だけは特殊で、親子孫が同じ値の時に他分類が0なら
集約することになります。(データパターンcがこれに該当します)
> この3入力のとき、出力はどうなりますか?
> 0001
> 1111
> 1221
→親子孫が0の入力があり、他は3入力とも1となっているので出力は 0001 のみとなります。
> Column数が4なのはわかりました。一方Row数はパターンデータ通りに4以下なのでしょうか?
> Row数の制約があれば教えて下さい。
→Row数は制限なしです。データパターンの4行はあくまで例となります。
> Row数が必ず4以下で与えられるものとしてパターンデータaが2回繰り返されていたとき出力はどうなりますか?
>
> 1111
> 1001
> 1111
> 1001
→すべて親1/他1であり、子孫は0なので出力は 1001 のみとなります。
> 親子孫の定義がなされていません。以下のようなパターンデータのとき出力はどうなりますか?
>
> 1011
> 1011
→上記値の意味のとおり、上位の子が0なのに孫が1のパターンはありません。
上記が回答となりますが、「まだ意味不明だよ!」とか「この場合は?」など
ありましたらご連絡ください。
返信が遅くなりまことに申し訳ありませんでした。
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
引用返信
削除キー/
編集
削除
このトピックをツリーで一括表示
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
入力内容にタグは利用できません。
引用部分(行頭に「>」や「■」が付いている部分)が全体の 80% 以上のコメントは投稿できません。
半角カナは使用しないでください。文字化けの原因になります。
削除キーを覚えておくと、自分の記事の編集・削除ができます。
記事中に No*** のように書くとその記事にリンクされます(No は半角英字/*** は半角数字)。
使用例)
No123 → 記事No123の記事リンクになります(指定表示)。
No123,130,134 → 記事No123/130/134 の記事リンクになります(複数表示)。
No123-130 → 記事No123〜130 の記事リンクになります(連続表示)。
投稿前に必ずお読みください
初めて投稿される方は、必ず「
書き込みのルールについて(12/4/2更新)
」をお読みください。
読むのが面倒、ルールを守りたくないという方は、「
お気楽掲示板
」へ投稿してください。
質問を投稿する場合は、「
質問をする際のアドバイス
」を参考にしてください。
投稿は、明記のない限り、パブリックドメインになります。
マルチポストされた投稿を報告する時は匿名で投稿し、マルチポストされている場所を併記してください。以下のリンクをクリックしていただくと、自動で下のフォームが埋まりますので、その後「送信」ボタンを押してご投稿ください。
マルチポストの報告をする
マルチポストの報告をするが、マルチポスト先の投稿が嫌がらせである(元の投稿者とは別人が行なっている)可能性が高い
(投稿日時に開きがあり、こちらの投稿の方が早い場合は、その可能性が高いです)
Name
/
E-Mail
/
Title
/
URL
/
Comment/ 通常モード->
図表モード->
(適当に改行して下さい/半角10000文字以内)
■No35681に返信(あばば無人君さんの記事) > おき さん、ご返答ありがとうございます。 > また、返信が遅くなりまことに申し訳ありません。 > (投稿の翌日から昨日まで出張が入り返信できませんでした) > > 以下、ご返信いただいた内容にお答え致します。 > >>イ. >>データパターンcの入出力が、文章で記述されたルールと矛盾しているように見えます。 >>「データパターンc」か「文章で記述されたルール」かどちらかが誤っていますか? > > →データパターンcはあり得ます。文章で記述されたルールが正確ではありませんでした。 > まずルールの前に値の意味を記載すべきでした。(スミマセン) > 値の意味: > 値は0または0以外(正数のみ)で、0は「全て」を意味します。 > また(予想がついていたと思いますが)親子孫は、親→子→孫の関係なので > 上位で0が出てきたら下位も0となります。 > (100はあっても010や001のパターンは無いということ) > > ただし他分類だけは特殊で、親子孫が同じ値の時に他分類が0なら > 集約することになります。(データパターンcがこれに該当します) > > >>この3入力のとき、出力はどうなりますか? >>0001 >>1111 >>1221 > > →親子孫が0の入力があり、他は3入力とも1となっているので出力は 0001 のみとなります。 > > >>Column数が4なのはわかりました。一方Row数はパターンデータ通りに4以下なのでしょうか? >>Row数の制約があれば教えて下さい。 > > →Row数は制限なしです。データパターンの4行はあくまで例となります。 > > >>Row数が必ず4以下で与えられるものとしてパターンデータaが2回繰り返されていたとき出力はどうなりますか? >> >>1111 >>1001 >>1111 >>1001 > > →すべて親1/他1であり、子孫は0なので出力は 1001 のみとなります。 > > >>親子孫の定義がなされていません。以下のようなパターンデータのとき出力はどうなりますか? >> >>1011 >>1011 > > →上記値の意味のとおり、上位の子が0なのに孫が1のパターンはありません。 > > > 上記が回答となりますが、「まだ意味不明だよ!」とか「この場合は?」など > ありましたらご連絡ください。 > > 返信が遅くなりまことに申し訳ありませんでした。 >
File
/
アップ可能拡張子=> /
.gif
/
.jpg
/
.png
/.zip
1) 太字の拡張子は画像として認識されます。
2) 画像は初期状態で縮小サイズ250×250ピクセル以下で表示されます。
3) 同名ファイルがある、またはファイル名が不適切な場合、
ファイル名が自動変更されます。
4) アップ可能ファイルサイズは1回
20KB
(1KB=1024Bytes)までです。
5) ファイルアップ時はプレビューは利用できません。
6) スレッド内の合計ファイルサイズ:[0/300KB]
残り:[300KB]
Icon
/
ホイールロボ
くるりロボ
ぱんだ
ふとめネコ
ねずみ
こあら
疑問ねこ
ランダム
管理者用
(画像を選択/
サンプル一覧
)
削除キー
/
(半角8文字以内)
解決
済
み!
BOX/
解決したらチェックしてください!(スレッドを閉じる目的ではチェックしないでください!)
クリエイティブ・コモンズ・ライセンス
を Comment の末尾に挿入するには、以下のリンクをクリックしてください。(Javascript で挿入しているだけです。)
表示(CC BY)
|
表示-改変禁止(CC BY-ND)
|
表示-継承(CC BY-SA)
|
表示-非営利(CC BY-NC)
|
表示-非営利-改変禁止(CC BY-NC-ND)
|
表示-非営利-継承(CC BY-NC-SA)
プレビュー/
クッキーに保存しない/
Mode/
通常管理
表示許可
Pass/
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
-
Child Tree
-