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

时间:2019-01-07 17:09:21

标签: c# linq

var ids = new List<Guid>(count);

我有一个多项目的空列表,我正在寻找一种用随机Guid填充它的优雅方法,而不使用for循环,最好是单线。

2 个答案:

答案 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(); }
    }