在我们的代码中的许多地方,我们都有对象集合,我们需要从中创建以逗号分隔的列表.集合的类型各不相同:它可能是我们需要某个列的DataTable,或者是List <Customer>等.
现在我们遍历集合并使用字符串连接,例如:
string text = "";
string separator = "";
foreach (DataRow row in table.Rows)
{
text += separator + row["title"];
separator = ", ";
}
Run Code Online (Sandbox Code Playgroud)
这有更好的模式吗?理想情况下,我希望通过发送函数来从每个对象获取正确的字段/属性/列,我们可以重用一种方法.
有没有办法使用LINQ将对象集合转换为单个新对象?
我想在另一个LINQ to SQL表达式中使用它.
我从Haskell 学到了散布函数,并一直在寻找c#中的实现.
Intersperse有2个参数,一个IEnumerable <T>源和一个T元素.它返回一个IEnumerable,其中元素插入源的每个元素之间.
一种可能的用例是在整数列表之间放置一个任意整数,例如:
// returns: {1, 0, 2, 0, 3}
(List<int>() {1, 2, 3}).Intersperse(0);
Run Code Online (Sandbox Code Playgroud)
这是string.Join(...)的一般情况.