0

別のアイテムリストの属性からアイテムリストを作成する必要があることがよくあります。私がとるアプローチは、多くの場合、次のようなものです。

    public class MyClass
    {
        public Guid Identifier { get; set; }
        public byte[] Bytes { get; set; }
        public int ForeignKey { get; set; }

        public static List<MyClass> AllMyClass { get; }
    }

    private List<Guid> GetIdentifiers(int foreignKey)
    {
        List<Guid> identifiers = new List<Guid>();
        foreach (var item in MyClass.AllMyClass.FindAll(c => c.ForeignKey == foreignKey)
        {
            identifiers.Add(item.Identifier);
        }
        return identifiers;
    }

さて、これをlamda式で実装するより速く/より簡単な方法はありますか?のように、操作を1行に凝縮したいと思います。

List<Guid> identifiers = MyClass.AllMyClass.MagicExpression(c => c.ForeignKey == foreignKey);

また、.NET 2.0フレームワークでは、このような表現は可能でしょうか?

4

2 に答える 2

2

私はそのようなものがうまくいくと思います:

List<Guid> identifiers = MyClass.AllMyClass.Where(x => x.ForeignKey == foreignKey).Select(x => x.Identifier).ToList();

さらに、これらは.Net2.0ではラムダ式ではありません。

于 2012-05-15T08:12:37.703 に答える
1

MagicExpression通常はと呼ばれWhereます。

そして、私が知る限り、.Net 2.0にはLINQもラムダも、拡張メソッドもありません。したがって、2番目の質問への回答はおそらくいいえです。

于 2012-05-15T08:15:15.303 に答える