var ids = new List<Guid>(count);
我有一个多项目的空列表,我正在寻找一种用随机Guid填充它的优雅方法,而不使用for循环,最好是单线。
答案 0 :(得分:5)
效率低下,但只有一行:
var list = Enumerable.Range(0, count).Select(_ => Guid.NewGuid()).ToList();
效率更高:
var list = new List<Guid>(count);
for (int i = 0 ; i < count ; i++) list.Add(Guid.NewGuid());
如果列表已经存在,则...只需使用第二个版本。您可以可以强制LINQ在不使用代码循环的情况下执行此操作,但是:请不要这样做。您正在此处循环,所以...使用循环!将循环移入LINQ并不能改善问题-只会使其变得更难阅读且执行效率更低。
答案 1 :(得分:0)
也许这更符合您的口味,即使它与您要求的不完全相同?
static IEnumerable<Guid> RandomGuids()
{
while (true) { yield return Guid.NewGuid(); }
}