gpt4 book ai didi

c# - 使用 Linq 将带有嵌套列表的列表转换为单独的列表

转载 作者:太空狗 更新时间:2023-10-29 23:04:57 25 4
gpt4 key购买 nike

我正在构建一个游戏应用程序。在我的表单上,我有一个数据 GridView ,我想将不同玩家所做的选择绑定(bind)到该 View 。

我有一个特定的 PlayerClass,我已将其放入名为 Players 的列表中。

public class PlayerClass
{
public int Id {get; set;}
public string Name {get; set;}
public List<bool> choices {get; set;}
}

Public List<PlayerClass> Players;

在此列表中,我将添加玩家针对不同问题所做的选择。

为了显示所做的选择,我想将结果组合到一个数据 GridView 中,其中我为每个玩家设置一列,其中每一行代表该玩家针对特定问题给出的答案。

所以我正在考虑创建一个包含新类的列表,其中包含不同玩家针对某个问题给出的所有答案。

public class ChoicesViewClass
{
public bool ChoicePlayer1 { get; set; }
public bool ChoicePlayer2 { get; set; }
public bool ChoicePlayer3 { get; set; }
public bool ChoicePlayer4 { get; set; }
}

但是我如何使用 Linq 从第一个列表填充第二个列表中的选项?

我正在尝试这样的事情:

grdChoices.DataSource = Players
.Select(s => new ChoicesViewClass{ ChoicePlayer1 = s, ChoicePlayer2 = s, ChoicePlayer3 = s, ChoicePlayer4 = s })
.ToList();

但是 s 是我卡住的地方。我该如何解决这个问题?

谢谢。

最佳答案

好吧,您正尝试通过索引访问玩家选择吗?播放器选择列表默认有 4 个长度吗?这将解决您的问题:

grdChoices.DataSource = Players
.Select(s => new ChoicesViewClass{ ChoicePlayer1 = s.choices[0], ChoicePlayer2 = s.choices[1], ChoicePlayer3 = s.choices[2], ChoicePlayer4 = s.choices[3] })
.ToList();

但我有点困惑,为什么要把它复杂化这么多?为什么玩家不能拥有 ChoicesViewClass 的属性?像这样:

public class PlayerClass
{
public int Id {get; set;}
public string Name {get; set;}
public ChoicesViewClass choices {get; set;}
}

关于c# - 使用 Linq 将带有嵌套列表的列表转换为单独的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54855396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com