C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■90491 / 4階層)  2つのリストから1つのリストを作成する方法
□投稿者/ 魔界の仮面弁士 (2112回)-(2019/03/14(Thu) 17:18:22)
No90490 (河童 さん) に返信
> 表示条件ごとに、同じようにUserInfoクラスを
> 作成するべきでしょうか?

表示条件がどのように切り替わるのかがイメージできませんでした。

DataGridView に表示する場合に、体温グリッド、血圧グリッド、食事グリッドと分けて表示したいのか、
あるいは一つの表に、taion1〜taion31、shokuji1〜shokuji31 などと横方向に並べていきたいのか、
あるいは一人一人が複数のレコードで表現されていて
 1  testA  体温   36   38   39
 1  testA  血圧 134/71 115/76 118/72
 2  testB  体温   35   37   36
のように縦方向に積み上げていくのか、それとも…?


仕様が読み切れなかったので具体例は示せませんが、表示条件が可変なら、
XDocument とか DataTable とか Dictionary とかを用いた方が取り回しやすいと思います。
DataGridView が対象なら、DataTable を使うのが楽かもしれません。


もしも UserInfo で管理するなら、体温、血圧、食事などすべての情報を保持できるようにしておいた方が良いでしょう。
その場合、DataGridView に表示する際に、表示項目を制限するということもできます。

dgvRiyojoho.AutoGenerateColumns = false; にして、列のバインドを自分で行わせても良いし、
dgvRiyojoho.AutoGenerateColumns = true; にしてバインド後に不要な列を Visible = false にするのも良し。


> まだデータグリッドビューのソースにセットするリストの型を
> バインディングリストにしたいと思っています。
BindingList<T> のことですね。


> BindingList<UserInfo> list = d_dataList
> 型を変更すると
> .ToList();
> の箇所で暗黙的に変換できないとエラーがでます。

えぇと???

当初の質問では、d_dataList は
「List<d_data> d_dataList」な変数でしたよね。

それを
 BindingList<UserInfo> list = d_dataList;
にするのは無理があると思うのですが…。


d_dataList 変数を BindingList<UserInfo> にすれば代入できますが、それだと話が繋がらないですし、
d_dataList 変数が List<UserInfo> だとしたら、代入式の右辺は new BindingList<UserInfo>(d_dataList) でしょう。


前提条件が分からないので、何に対して .ToList() しようとしているのか読み解けませんでしたが、
ToList できないなら、foreach で列挙して、適当な List<> 変数に Add していく方法は使えませんか?
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[3]: 2つのリストから1つのリストを作成する方法 /河童 →Re[5]: 2つのリストから1つのリストを作成する方法 /河童
 
上記関連ツリー

2つのリストから1つのリストを作成する方法 / 河童 (19/03/14(Thu) 13:18) #90487
Re[1]: 2つのリストから1つのリストを作成する方法 / 魔界の仮面弁士 (19/03/14(Thu) 15:18) #90488
  └ Re[2]: 2つのリストから1つのリストを作成する方法 / 魔界の仮面弁士 (19/03/14(Thu) 15:54) #90489
    └ Re[3]: 2つのリストから1つのリストを作成する方法 / 河童 (19/03/14(Thu) 16:36) #90490
      └ 2つのリストから1つのリストを作成する方法 / 魔界の仮面弁士 (19/03/14(Thu) 17:18) #90491 ←Now
        └ Re[5]: 2つのリストから1つのリストを作成する方法 / 河童 (19/03/18(Mon) 15:02) #90530 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信