投影:一次填充2个阵列

par*_*ent 2 c# linq

我以为我会很聪明并且写一些像这样的代码示例.它似乎也是一种干净而有效的方式来填充数组而不需要第二次枚举.

int i = 0;
var tickers = new List<string>();
var resultTable = results.Select(result => new Company
{
      Ticker = tickers[i++] = result.CompanyTicker,
});
Run Code Online (Sandbox Code Playgroud)

我真的不关心另一种方法,因为我可以通过for循环轻松实现这一点.我更感兴趣为什么这个片段不起作用,即tickers.Count = 0代码运行后,尽管有100多个结果.谁能告诉我为什么我会遇到这种意外行为?

Hab*_*bib 8

您需要迭代查询,例如使用.ToArray()ToList()最后.目前您刚刚创建了一个查询,尚未执行.

您可能会看到:LINQ和延迟执行

另外,我相信您的代码应该抛出异常IndexOutOfRange,因为您的List没有任何项目.