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

わんくま同盟

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

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

■92926 / 1階層)  List型で入れ子になっているときのデータのセット方法
□投稿者/ 魔界の仮面弁士 (2464回)-(2019/11/09(Sat) 17:49:40)
No92924 (河童 さん) に返信
> List型が入れ子になっているときリストにDataGridViewのデータをセットする方法を教えてください。

入れ子の List の内容を DataGridView にデータバインドして表示させるのではなく、
DataGridView の内容を入れ子の List に変換するのですね?


> for (int i = 0; i < 4; i++)
DataGridView には 5 行登録してあるようですが、
上記では先頭 3 行しか処理していないようですね。

全部の行では無く、先頭 n 行のみを処理したいのでしょうか?


> グループのリストにはチームのリストが入れ子になっています。
> チームのリストにはユーザのリストが入れ子になっています。

サンプルだと、一つのグループ内に一つのチームしか無いですね。

同じユーザーが複数のチームに所属したり、
同じチームが複数のグループに所属することはありますか?


> DataGridViewのデータを取得して、
> 入れ子になっているチームとユーザのリストをどのように値を取得して
> リストを完成させれば良いでしょうか?


private void btnApply_Click(object sender, EventArgs e)
{
    var users = dgvGroup.Rows.OfType<DataGridViewRow>().Where(row => !row.IsNewRow).Select(row => new
    {
        gInt = row.Cells[0].Value as int? ?? 0,
        gStr = row.Cells[1].Value as string ?? "",
        tInt = row.Cells[2].Value as int? ?? 0,
        tStr = row.Cells[3].Value as string ?? "",
        uInt = row.Cells[4].Value as int? ?? 0,
        uStr = row.Cells[5].Value as string ?? "",
    });

    var dicGroup = new Dictionary<int, GroupInfo>();
    var dicTeam = new Dictionary<int, TeamInfo>();
    foreach (var user in users)
    {
        GroupInfo g;
        TeamInfo t;
        if (!dicGroup.TryGetValue(user.tInt, out g))
        {
            dicGroup.Add(user.tInt, g = new GroupInfo { group_num = user.gInt, group_name = user.gStr, teamList = new List<TeamInfo>() });
        }
        if (!dicTeam.TryGetValue(user.tInt, out t))
        {
            g.teamList.Add(t = new TeamInfo { team_num = user.tInt, team_name = user.tStr, userList = new List<UserInfo>() });
            dicTeam.Add(user.tInt, t);
        }
        t.userList.Add(new UserInfo { user_num = user.uInt, user_name = user.uStr });
    }
    GroupLst = dicGroup.Values.ToList();
}

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←List型で入れ子になっているときのデータのセット方法 /河童 返信無し
 
上記関連ツリー

List型で入れ子になっているときのデータのセット方法 / 河童 (19/11/09(Sat) 15:57) #92924
List型で入れ子になっているときのデータのセット方法 / 魔界の仮面弁士 (19/11/09(Sat) 17:49) #92926 ←Now
Re[1]: List型で入れ子になっているときのデータのセット方法 / 河童 (19/11/09(Sat) 17:43) #92925 解決済み
  └ Re[2]: List型で入れ子になっているときのデータのセット方法 / 魔界の仮面弁士 (19/11/09(Sat) 18:28) #92929 解決済み
    └ Re[3]: List型で入れ子になっているときのデータのセット方法 / 河童 (19/11/09(Sat) 19:26) #92930

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