4


我有一个 List Say foo,它包含 A 类类型的数据(包含成员 FName、LName、Total)。我需要获取 LName 为“foobar”的数据列表。

我知道这听起来很简单,但这让我很生气!因为我会在运行时让成员返回列表。

提前致谢

编辑:对不起极客,列表是动态的,列表是对象类型的。我只在运行时知道它的 A 类类型

4

1 回答 1

16

使用 LINQ 可以轻松完成:

using System.Linq;

(...)

List<A> foo = GetFooList();    // gets data
List<A> fooBorItems = foo.Where(a = > a.FName == "foobar").ToList();

或使用基于语法的查询:

List<A> fooBorItems = (from a in foo
                       where a.FName == "foobar"
                       select a).ToList();

首先使用扩展方法List<object>Cast<T>它将所有源集合元素转换为A(并在不可能时抛出异常):

List<A> fooBorItems = foo.Cast<A>().Where(a = > a.FName == "foobar").ToList();

OfType<A>(将仅返回可以转换的元素,不能转换的元素除外):

List<A> fooBorItems = foo.OfType<A>().Where(a = > a.FName == "foobar").ToList();
于 2013-04-08T06:00:43.977 回答