1

我有一个表示为Tuple<Enum,int>. 我需要将其转换为List<Enum>,这样列表应该intEnum. 我显然可以使用while循环List.Add来执行此操作,但我正在努力避免使用它,因为它不能保证终止。我想使用 C# 更惯用的东西,主要是为了一般代码清洁。

当然,问题是我现在正在看的东西没有明显的方法来做到这一点。到目前为止,我最有趣的想法是产生int所有添加Enum到同一个列表中的线程数,但在一秒钟后就死了。但是毫不奇怪,就代码而言,生成线程一点也不轻巧,而且比使用while.

4

2 回答 2

4

您可以使用Enumerable.RepeatEnumerable.Range完成此任务:

List<FooEnum> enums = Enumerable.Repeat(tuple.Item1, tuple.Item2).ToList();

FooEnum是元组中枚举的类型)

于 2013-11-09T00:33:47.620 回答
1

您的问题缺乏一些细节,但也许这会有所帮助:

Tuple<Enum, int> x = ...
var result = Enumerable.Range(0, x.Item2).Select(i => x.Item1).ToList();
于 2013-11-09T00:33:44.350 回答