相关疑难解决方法(0)

Enumerable.Concat在空列表上不起作用

我有下面的代码,该代码从子函数中检索列表并将其返回给主函数。我的问题是我无法将子功能的结果连接到mainfunc中声明的可枚举。我有什么想念的吗?

private void MainFunc()
{
    IEnumerable<CustomClass> keys = Enumerable.Empty<CustomClass>();
    foreach (var item in items)
    {
        keys.Concat(SubFunc(item));
    }
}
private IEnumerable<CustomClass> SubFunc (string y)
{
    IEnumerable<CustomClass> list = GetList(y).ToList();
    return list;
}
Run Code Online (Sandbox Code Playgroud)

c# ienumerable

3
推荐指数
1
解决办法
1690
查看次数

如果多次调用,Concat会导致堆栈溢出

应用程序意外崩溃,堆栈溢出错误.经过研究,我发现崩溃的原因是遵循以下代码:

foreach (var item in items)
{
    result = result.Concat(item.Data);
}
Run Code Online (Sandbox Code Playgroud)

这是多个IEnumerables的连接.应用程序在items包含10,000个元素时崩溃.

SelectMany解决了这个问题.但还是......

为什么Concat扩展导致堆栈溢出?

.net c# linq stack-overflow concatenation

1
推荐指数
1
解决办法
158
查看次数

标签 统计

c# ×2

.net ×1

concatenation ×1

ienumerable ×1

linq ×1

stack-overflow ×1