我有一个字符串,例如" DNA"并且数组的长度/列表= N.无论如何将字符串插入数组或列表中,以便它变为[" D"," N"," A& #34;," D"," N"," A"," D"," N"]?我尝试了很多东西,但最后两封信没有给我任何东西。
我尝试将字符串转换为char [],检查列表的长度是否为<然后使用.Take()来附加我需要的字符,但它不起作用。即使它确实如此,它似乎有点笨拙。
答案 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;
}
}