查询使用LINQ从List返回对象

时间:2013-04-08 05:58:50

标签: c# linq


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

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

提前致谢

编辑: 我很抱歉Geeks,列表是Dyanamic列表是对象类型。我只在运行时

知道类型A的类型

1 个答案:

答案 0 :(得分:11)

可以使用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();