0

コレクションの一部を別のコレクションに抽出したいと考えています。for ループを使用して同じことを簡単に行うことができますが、私の linq クエリは同じように機能しません。私はLinqの初心者なので、クエリの修正を手伝ってください(可能であれば説明/初心者チュートリアルリンク付き)

従来の方法:

Collection<string> testColl1 = new Collection<string> {"t1", "t2", "t3", "t4"};
Collection<string> testColl2 = new Collection<string>();

for (int i = 0; i < newLength; i++)
{
    testColl2.Add(testColl1[i]);
}

ここで、testColl1 はソースで、testColl2 はカウント = newLength の目的の切り捨てられたコレクションです。

次のlinqクエリを使用しましたが、どれも機能していません...

var result = from t in testColl1 where t.Count() <= newLength select t;
            var res = testColl1.Where(t => t.Count() <= newLength);
4

4 に答える 4

1

使用Take

var result = testColl1.Take(newLength);

この拡張メソッドは、コレクションから最初のN個の要素を返します。この場合、Nは渡すパラメーターですnewLength

于 2012-05-11T13:19:17.080 に答える