在List/IEnumerable中重复数字

Pet*_*r T 1 c# linq

我有一个清单,例如

List<int> List1 = new List<int>{1, 5, 8, 3, 9};
Run Code Online (Sandbox Code Playgroud)

重复列表中的元素以获得{1,1,5,5,8,8,3,3,9,9}的简单方法是什么?

我需要这个的原因是我正在绘制列表中的元素并需要制作一个"步骤图".

And*_*rei 7

var list2 = List1.SelectMany(x => new []{x, x}).ToList();
Run Code Online (Sandbox Code Playgroud)

  • @Jamiec对于所有意图和目的,两者之间的开销差别很小.它们都会为每个元素分配一个大小为2的数组.您可以尝试使用`x => Enumerable.Repeat(2,x)`.这可能会降低GC开销. (2认同)