我在做一个Blackjack模拟器。下面的字符串数组名为deck (我更喜欢在枚举上使用数组):
string[] deck = { "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", };用户将输入对话框输入甲板号:
byte deckNumber;
deckNumber = Convert.ToByte(Interaction.InputBox("Enter The Deck Number", "Deck Number", "3", 10, 10));如何使用deckNumber复制数组?例如,用户输入2,数组将是:
{ "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" };我想我需要一个for循环,但我做不到。
发布于 2014-10-30 21:12:10
string[] deck = { "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", };
var newDeck = Enumerable.Repeat(deck, 2).SelectMany(x => x).ToArray();发布于 2014-10-30 21:31:10
如果您使用的是.NET 3.5或更高版本,您可以使用LINQ,如L.B.所示:
var newDeck = Enumerable.Repeat(deck, 2).SelectMany(x => x).ToArray();Enumerable.Repeat(deck, 2)为您提供两个元素,每个元素都是一个string[],.SelectMany(x => x)将其扁平化为一个字符串系列,而.ToArray()显然将该系列转换为一个数组。
否则,可以使用循环:
var newDeck = new string[deck.Length * deckNumber];
for (int d = 0; d < deckNumber; d++)
{
for (int i = 0; i < deck.Length; i++)
{
newDeck[d * deck.Length + i] = deck[i];
}
}发布于 2014-10-31 02:42:25
var source =新的string[]{"a","b"};
var copy =新列表(源).ToArray();
https://stackoverflow.com/questions/26663339
复制相似问题