如何在 C# 中复制列表成员

本文关键字:复制 列表 成员 | 更新日期: 2023-09-27 18:36:25

int x = 9; 
List<string> list = new List<string> {"a", "b"};

我希望列表是:a b a b a ...直到列表。计数 = x。我该如何实现此目的?

如何在 C# 中复制列表成员

您可以使用 LINQ 轻松完成此操作:

List<string> result = (from ignored in Enumerable.Range(0, int.MaxValue)
                       from item in list
                       select item).Take(count).ToList();

或者不使用查询表达式:

List<string> result = Enumerable.Range(0, int.MaxValue)
                                .SelectMany(ignored => list)
                                .Take(count)
                                .ToList();

在这里使用 Enumerable.Range 只是为了强制重复 - 就像 Ai 使用 Enumerable.Repeat 的方法一样,这当然也会起作用。

怎么样:

var result= Enumerable.Repeat(new[] { "a", "b" }, int.MaxValue)
                      .SelectMany(strArray => strArray)
                      .Take(x)
                      .ToList();

这样的东西应该可以工作。我没有检查它,让它成为你的练习:)

int currentCount = list.Count;
for (int i=0; i<x; ++i)
{
     list.Add(list[i%currentCount]);  
}
int x = 9;
List<string> list = new List<string> {};
for (int i = 0; i < x; i++)
{
    list.Add("a");
    list.Add("b");    
}
// verify    
foreach (var item in list)
{
    Console.WriteLine(item);    
}