我经常发现自己需要从另一个项目列表的属性中组成一个项目列表。我采用的方法通常类似于以下内容:
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 表达式实现它?如,我想将操作浓缩为一行:
List<Guid> identifiers = MyClass.AllMyClass.MagicExpression(c => c.ForeignKey == foreignKey);
此外,.NET 2.0 框架是否可以进行这样的表达?