2

LinqとFunc<>に関するいくつかの記事を読み、簡単な例を理解しましたが、日常のプログラミングではそれらを使用できません。LINQまたはラムダ式が有用であり、使用する必要があるシナリオを知りたいです。

このコードの場合:Linqまたはラムダ式を使用できますか

List<int> abundantNumbers = new List<int>();
for (int i = 0; i < 28888; i++)
     {
      if (i < pta.SumOfDivisors(i))
         {
          abundantNumbers.Add(i);
          }
     }
4

2 に答える 2

14

はい、あなたはあなたの例で絶対にLINQを使うことができます:

var abundantNumbers = Enumerable.Range(0, 28888)
                                .Where(i => i < pta.SumOfDivisors(i))
                                .ToList();

リストに追加したコードを投稿しただけでなく、最初からリストが空であることを示すコードを投稿したことが重要であることに注意してください。つまり、リストを作成しているということです。既存のリストに追加するコードがあれば、次のようなものを使用します。

var query = Enumerable.Range(0, 28888).Where(i => i < pta.SumOfDivisors(i));
abundantNumbers.AddRange(query);
于 2012-05-03T20:43:23.393 に答える
2

LINQ表記でそれを実行したい場合は、次のようになります。

var abundantNumbers = (from i in Enumerable.Range(0, 28888)
                       where i < pta.SumOfDivisors(i)
                       select i)
                      .ToList();
于 2012-05-03T21:01:07.513 に答える