C# 填写清单的方法<&燃气轮机;有元素

C# 填写清单的方法<&燃气轮机;有元素,c#,C#,我的密码里有 List<BookedReelsState> retVal = new List<BookedReelsState>(somesize); List retVal=新列表(某种大小); 如果某些条件起作用,我需要用相同的值填充整个列表 当然,我可以通过foreach循环和设置值来实现,有没有更优雅的方式来实现? 我只是想在这里学到一些新东西。如果你有一个IEnumerable,那么你可以使用它 例如: var list = new List<Boo

我的密码里有

List<BookedReelsState> retVal = new List<BookedReelsState>(somesize);
List retVal=新列表(某种大小);
如果某些条件起作用,我需要用相同的值填充整个列表

当然,我可以通过
foreach
循环和设置值来实现,有没有更优雅的方式来实现?
我只是想在这里学到一些新东西。

如果你有一个IEnumerable,那么你可以使用它

例如:

var list = new List<BookedReelsState>(20);

var someEnumerable = new []
{
   new BookedReelsState(1),
   new BookedReelsState(2),
   new BookedReelsState(2)
};

list.AddRange(someEnumerable);
var列表=新列表(20);
var someEnumerable=new[]
{
新BookedReelsState(1),
新BookedReelsState(2),
新BookedReelsState(2)
};
list.AddRange(某些可枚举);
这里有两件事

首先,
List(int-capacity)
不会创建一个包含
capacity
项的列表。它只是为他们保留记忆。因此,上面示例中的列表的长度将等于0

但是,如果您有一个列表,并且希望设置其中的每个元素,则可以这样做:

retVal.ForEach( rv => rv = desiredValue );
其中desiredValue是要为每个元素设置的值


我还觉得奇怪的是,您希望用相同的值填充列表中的每个元素。如果所有元素都是相同的,那么列表就没有任何作用,但是我想您可能需要先填充一些默认值,然后在以后更改其中的一些。

在不影响retVal的情况下,
rv
是否会超出范围?
retVal.AddRange(Enumerable.Repeat(value, somesize));
retVal.ForEach(b => b.changedProp = newValue);