在一组价值观中
[0, 2, 25, 30]
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用linq
[0, 0, 0, 2, 2, 2, 25, 25, 25, 30, 30, 30] //Replicate 2 times (values repeated 3 times)
Run Code Online (Sandbox Code Playgroud)
有没有办法用linq做到这一点?
Tim*_*ter 12
使用值类型很容易,只需使用Enumerable.Repeat:
var result = collection.SelectMany(x => Enumerable.Repeat(x, 3));
Run Code Online (Sandbox Code Playgroud)
如果它是一个数组使用,ToArray如果它是最后的列表使用ToList.
对于引用类型,它取决于您是否真的需要相同的引用,那么您也可以使用Repeat.否则,您需要创建实例的"深度克隆",例如通过使用复制构造函数(如果可用):
var result = collection
.SelectMany(x => Enumerable.Range(1, 3).Select(i => new YourType(x)));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |