使用随机值填充空Guid列表的最简单方法

And*_*ski 2 c# linq

var ids = new List<Guid>(count);
Run Code Online (Sandbox Code Playgroud)

我有一个多项空列表,我正在寻找一种优雅的方式来填充随机Guids,而不使用for循环,最好是单行.

Mar*_*ell 5

效率低但只有一行:

var list = Enumerable.Range(0, count).Select(_ => Guid.NewGuid()).ToList();
Run Code Online (Sandbox Code Playgroud)

效率更高:

var list = new List<Guid>(count);
for (int i = 0 ; i < count ; i++) list.Add(Guid.NewGuid());
Run Code Online (Sandbox Code Playgroud)

如果列表已经存在,那么......只需使用第二个版本.您可以在不使用代码中的循环的情况下强制LINQ执行此操作,但是:不要这样做.你在这里循环,所以...使用循环!将循环移动到LINQ并不会改善事情 - 它只会使读取更加困难并且执行效率降低.

  • @kamalpreet构造并执行多个迭代器; 构造一个委托(虽然在这种情况下它将被缓存并作为静态重用),并被多次调用; 列表的大小不正确,所以它会随着它的增长而使用多个数组(至少对于大的`count`) (3认同)