【问题标题】:C# Lambda with Console.ReadC# Lambda 与 Console.Read
【发布时间】:2014-10-30 07:15:46
【问题描述】:

我已经问了自己好几天了,现在是我需要帮助的时候了..

我的示例代码看起来像

int nTestCase  = Convert.ToInt32(Console.ReadLine());   
string[] inputStrings = new string[nTestCase];             

for (int i =0; i<nTestCase;i++)
 {
   inputStrings[i] = Console.ReadLine();
 }

这里有没有可能避免大量的 for 循环。只是想用 Lambda 表达式替换它?

这个问题可能听起来很疯狂,但我只想知道 Lambda 是否可以处理 Console.Read 这个场景?

【问题讨论】:

    标签: linq c#-4.0 lambda console-application


    【解决方案1】:
    int nTestCase  = Convert.ToInt32(Console.ReadLine());
    string[] inputStrings = Enumerable.Range(0, nTestCase)
                                      .Select(x => Console.ReadLine())
                                      .ToArray();
    

    甚至

    string[] inputStrings = Enumerable.Range(0, Convert.ToInt32(Console.ReadLine()))
                                      .Select(x => Console.ReadLine())
                                      .ToArray();
    

    【讨论】:

    • 还值得一提的是,OP的术语完全被打破了
    • 优秀。只是我正在寻找的一段代码:) 谢谢!
    • @zerkms:您能否解释一下如何 OP 的术语“完全被破坏”?
    • @stakx:是的,OP 混淆了 LINQ 扩展方法和 lambda 函数。
    • @zerkms:我同意这是有区别的。但考虑到 LINQ 运算符(IEnumerable&lt;T&gt; 上的扩展方法)通常需要 lambda(实际上是委托)作为参数,该术语并没有那么大错特错。
    猜你喜欢
    • 1970-01-01
    • 2011-02-16
    • 2013-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多