无法将列表中的元素设置为true

时间:2018-08-01 15:07:01

标签: c# list boolean

 List<bool> Seeded = new List<bool>();

        // puts winning percentage into a list
        for (int i = 0; i < team.Count(); i++)
        {
            winPCTseed.Add(team.ElementAt(i).winPCT);
            Seeded.Add(false);
        }

这就是我填写充满布尔变量的列表的方式。我试图将它们设置为true,但会收到一条错误消息,指出分配的左侧必须是变量,属性或索引器。我以为这段代码是。

Seeded.ElementAt(i) = true;

在将每个元素设置为false之后,如何将它们设置为true?

2 个答案:

答案 0 :(得分:0)

ElementAt是一种扩展方法,仅返回在指定位置的元素。您不能对该实例做太多事情,因为它是将被复制的值类型。因此,GetElement返回的实例完全独立于列表中的实例。

但是,即使您的列表是引用类型(=类)的列表,您也不能这样做,因为您不能将值分配给方法的返回值。

就您而言,这很简单:

Seeded[i] = true;

答案 1 :(得分:0)

您的种子列表为空,将它们添加到winPCTseed和Seeded列表中时,您没有条件检查winPCT是true还是false。

    List<bool> Seeded = new List<bool>();

    // puts winning percentage into a list
    for (int i = 0; i < team.Count(); i++)
    {
        winPCTseed.Add(team.ElementAt(i).winPCT);
        Seeded.Add(true);
    }

但是如果您有如下条件检查使用情况。

    List<bool> Seeded = new List<bool>();

    // puts winning percentage into a list
    for (int i = 0; i < team.Count(); i++)
    {
        Seeded.Add(false);
        if(team[i].winPCT)
        {
          Seeded[i] = true;
          winPCTseed.Add(team.ElementAt(i).winPCT);

        }
    }