C#如何从字符串数组中删除最后一项?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (559)

我正在做一个简单的二十一点游戏项目。首先,我创建了一系列卡片:

string[] deck = { "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", };

我乘以4,并给予deckNumber

newDeck = Enumerable.Repeat(deck, deckNumber*4).SelectMany(x => x).ToArray();

当我想从数组中删除最后一张卡时,我应用这个:

newDeck = newDeck.Where(w => w != newDeck.Last()).ToArray();

所以问题在于代码不会从数组中删除最后一项,就像有多个数组并删除它们中的所有最后一个元素。例如有一个card:

cards: 2 3 4 5 6 7 8 9 10 J Q K A 2 3 4 5 6 7 8 9 10 J Q K A 2 3 4 5 6 7 8 9 10 J Q K A 2 3 4 5 6 7 8 9 10 J Q K A 

当我应用我的删除命令时,它变成:

cards: 2 3 4 5 6 7 8 9 10 J Q K 2 3 4 5 6 7 8 9 10 J Q K 2 3 4 5 6 7 8 9 10 J Q K 2 3 4 5 6 7 8 9 10 J Q K 

它从数组中删除所有的A。我该如何解决这个问题?

提问于
用户回答回答于

要删除最后一个元素,请使用以下命令:

newDeck = newDeck.Take(newDeck.Count() - 1).ToArray();
用户回答回答于

可以使用Array类来调整大小:

Array.Resize(ref result, result.Length - 1);

扫码关注云+社区

领取腾讯云代金券