c# - LINQ:每隔一个位置添加一个项目

标签 c# linq

所以我有一个列表:

["item1"]
["item2"]
["item3"]

我希望列表是这样的:

[""]
["item1"]
[""]
["item2"]
[""]
["item3"]

一个简单的从后到前的循环给了我:

for (int i = list.Count-1; i >= 0; i--)
   list.Insert(i, string.Empty);

但我想知道是否有更优雅的方式使用 LINQ 来完成此操作?

最佳答案

您可以使用Intersperse 扩展方法。这样,意思就清楚了,代码就可以重用了。代码取自 Extension method for Enumerable.Intersperse稍作修改,在第一个位置也包含一个空字符串。

public static IEnumerable<T> Intersperse<T>(this IEnumerable<T> source, T element)
{
    foreach (T value in source)
    {
        yield return element;
        yield return value;
    }
}

关于c# - LINQ:每隔一个位置添加一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26753272/

相关文章:

c# - 存储库模式 - 如何结合数据库和内存中的实体?

c# - 在远程计算机上创建和删除文件

c# - ASP.NET 站点在无法将 DBNull.Value 转换为类型 'System.Guid' 时崩溃

c# - 如何使 Distinct...More 与众不同?

c# - LIKE 与 Linq to Entities

c# - 验证 if 子句中的空查询

c# - 如何使用 VB.NET 以编程方式在 Richtextbox 中添加粗体文本

c# - 已加载私有(private)符号但未显示行号?

c# - 如何在 C# 中设置参数的定义值?

c# - 如何检查包含多个值的 CONTAINS