在 array[] 或 List 中重复字符串
Repeat string inside an array[] or List
我有一个字符串,例如"DNA",array/list的长度=N。有没有办法把这个字符串插入到数组或列表中,使它变成["D", "N", "A", "D", "N", "A", "D", "N"]?我尝试了很多方法,但最后两个字母都没有。
我尝试将字符串转换为 char[],检查列表的长度是否小于 n,然后使用 .Take() 附加我需要的字符,但它不起作用。就算有,也显得有点笨拙。
int N = 7;
string str = "DNA";
var result = string.Concat(Enumerable.Repeat(str, N).SelectMany(x => x).Take(N));
或
var result = string.Concat(Enumerable.Repeat(str, N/str.Length + 1).SelectMany(x => x)
.Take(N));
给你:)
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());
}
}
}
您可以使用 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;
}
}
我有一个字符串,例如"DNA",array/list的长度=N。有没有办法把这个字符串插入到数组或列表中,使它变成["D", "N", "A", "D", "N", "A", "D", "N"]?我尝试了很多方法,但最后两个字母都没有。
我尝试将字符串转换为 char[],检查列表的长度是否小于 n,然后使用 .Take() 附加我需要的字符,但它不起作用。就算有,也显得有点笨拙。
int N = 7;
string str = "DNA";
var result = string.Concat(Enumerable.Repeat(str, N).SelectMany(x => x).Take(N));
或
var result = string.Concat(Enumerable.Repeat(str, N/str.Length + 1).SelectMany(x => x)
.Take(N));
给你:)
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());
}
}
}
您可以使用 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;
}
}