首页 > 解决方案 > 如何在 C# 中设置列​​表的所有值

问题描述

我正在寻找 Array.Fill 的等价物,但要寻找 List

是否可以用特定值填充所有列表项

Array.Fill(counters, max); // this works

listName.Fill(5);   //something like this

会用 5 填满一个列表

我不想使用循环

鉴于列表中有一些项目

标签: c#

解决方案


Enumerable.Repeat(TResult, Int32) 方法

var fives = Enumerable.Repeat(5, 10).ToList(); // create list with ten fives

无论如何,您都需要循环现有列表的所有项目,只需使用扩展方法包装循环即可。

public static void FillWith<T>(this List<T> list, T value)
{
    for (var i = 0, i < list.Count, i++)
    {
        list[i] = value;
    }
}

用法

var list = new List<int> { 1, 2, 3, 4, 5 };
list.FillWith(42);

var output string.Join(",", list); // 42,42,42,42,42    

推荐阅读