在数组[]或List中重复字符串

时间:2015-11-07 21:07:35

标签: c# arrays string list repeat

我有一个字符串,例如" DNA"并且数组的长度/列表= N.无论如何将字符串插入数组或列表中,以便它变为[" D"," N"," A& #34;," D"," N"," A"," D"," N"]?我尝试了很多东西,但最后两封信没有给我任何东西。

我尝试将字符串转换为char [],检查列表的长度是否为<然后使用.Take()来附加我需要的字符,但它不起作用。即使它确实如此,它似乎有点笨拙。

3 个答案:

答案 0 :(得分:3)

>:

int N = 7;
string str = "DNA";
var result = string.Concat(Enumerable.Repeat(str, N).SelectMany(x => x).Take(N));

答案 1 :(得分:0)

在这里你去:)

 class Program
 {
    public static readonly string dnaString ="DNA";
    static void Main(string[] args)
    {
        int counter = 7;
        List<string> stringList = new List<string>();
        for(int i=0;i< counter;i++)
        {
            stringList.Add(dnaString[i % dnaString.Length].ToString());
        }


     }
   }

答案 2 :(得分:0)

您可以使用yield return语句生成输入的无限序列,然后使用Take将其切片到某处:

int N = 10;
List<string> listStr = new List<string> { "D", "N", "A" };

List<string> result = Cycle(listStr).Take(N).ToList();


static IEnumerable<string> Cycle(IEnumerable<string> input)
{
    while(true)
    {
        foreach (var str in input)
           yield return str;
    }
}