首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C#中复制数组

如何在C#中复制数组
EN

Stack Overflow用户
提问于 2014-10-30 21:08:48
回答 3查看 167关注 0票数 1

我在做一个Blackjack模拟器。下面的字符串数组名为deck (我更喜欢在枚举上使用数组):

代码语言:javascript
复制
string[] deck = { "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", };

用户将输入对话框输入甲板号:

代码语言:javascript
复制
byte deckNumber;
deckNumber = Convert.ToByte(Interaction.InputBox("Enter The Deck Number", "Deck Number", "3", 10, 10));

如何使用deckNumber复制数组?例如,用户输入2,数组将是:

代码语言:javascript
复制
{ "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循环,但我做不到。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-10-30 21:12:10

代码语言:javascript
复制
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();
票数 4
EN

Stack Overflow用户

发布于 2014-10-30 21:31:10

如果您使用的是.NET 3.5或更高版本,您可以使用LINQ,如L.B.所示:

代码语言:javascript
复制
var newDeck = Enumerable.Repeat(deck, 2).SelectMany(x => x).ToArray();

Enumerable.Repeat(deck, 2)为您提供两个元素,每个元素都是一个string[].SelectMany(x => x)将其扁平化为一个字符串系列,而.ToArray()显然将该系列转换为一个数组。

否则,可以使用循环:

代码语言:javascript
复制
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];
    }
}
票数 1
EN

Stack Overflow用户

发布于 2014-10-31 02:42:25

var source =新的string[]{"a","b"};

var copy =新列表(源).ToArray();

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26663339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档