gpt4 book ai didi

c# - 获取 List 的所有元素值

转载 作者:太空宇宙 更新时间:2023-11-03 19:52:42 26 4
gpt4 key购买 nike

我是新来的,我需要一些关于 List 的帮助......

实际上,我想添加每个y我的元素List<x, y>到一个变量。我知道,这可能很容易,但我仍然停留在那个部分..

/// <summary>
/// Number of cards in the deck
/// </summary>
public byte NbTotalCards
{
get
{
byte nbCards = 0;

for (byte i = 0; i <= this.LstCardsWithQt.Count; i++)
{
if (this.LstCardsWithQt[i].Qt != 0)
{
if(this.LstCardsWithQt[i].Qt.Equals(2))
nbCards += 2;
else
{
nbCards += 1;
}
}
else
{
nbCards += 0;
}
}
return nbCardss;
}
}

在哪里

public List<DeckEntry> LstCardsWithQt

public DeckEntry(Card card, byte qt)
{
this.Card = carte;
this.Qt = qt;
}

顺便说一句,我在 this.LstCardsWithQt[i].Qt != 0 上遇到错误

ArgumentOutOfRangeExeption("Index was out of range. Must be non-negative and less than the size of the collection")

最佳答案

您正在以错误的方式循环浏览您的收藏。而不是

for (byte i = 0; i <= this.LstCardsWithQt.Count; i++)

必须是

for (byte i = 0; i < this.LstCardsWithQt.Count; i++)

(您也可以删除“this”限定符,这看起来像 Java 代码)

新方法:如果你只想总结所有卡片的属性card.Qt,你可以这样做

public int NbTotalCards
{
get
{
return LstCardsWithQt.Sum( card => card.Qt);
}
}

(证明 card.Qt 只有 0 到 2 之间的值,并且它仍然是相同的逻辑 - 我允许自己将 sum 的类型更改为 int 而不是byte。如果这样做,您还需要在文件开头使用 using System.Linq。)

关于c# - 获取 List<x, y> 的所有元素值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36812880/

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