static void Main(string[] args)
{
Random rand = new Random();//创建一个随机数生成器
Console.WriteLine("请输入一个整数:");
try
{
int intCount = Convert.ToInt32(Console.ReadLine());//输入要生成随机数的组数
IEnumerable<int> randomSeq = Enumerable.Repeat<int>(1, intCount).Select((i)=>rand.Next(100));
Console.WriteLine("将产生" + intCount.ToString() + "个随机数:");
foreach (int item in randomSeq)//通过枚举序列来生成随机数,
{
Console.WriteLine(item.ToString());//输出若干组随机数
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.Read();
}
Func委托不是不需要参数的吗?为什么上面那个Select方法的参数中的Lambda表达式必须要加个参数i呢?
------解决思路----------------------
这里它需要的不是Func<TResult>类型,而是Func<int, TResult>类型的,要不然那个int无法传递给你指定的方法,虽然你不需要,但是它不能不传递。这种确实不需要的时候也可以用下划线替代i,写成 .Select(_ => rand.Next(100)),应该看起来更容易理解。