我有一个 List Say foo,它包含 A 类数据(包含成员 FName、LName、Total)。我需要获取 LName 为“foobar”的数据列表。
我知道这听起来是个简单的问题,但这让我很生气!因为我将在运行时获取返回列表的成员。
提前致谢
编辑: 对不起,极客们,列表是动态的,列表是对象类型的。我只在运行时知道它是 A 类类型
最佳答案
可以使用 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>
(它将只返回可以转换的元素,不能转换的元素没有异常(exception)):
List<A> fooBorItems = foo.OfType<A>().Where(a = > a.FName == "foobar").ToList();
关于c# - 使用 LINQ 查询从列表中返回对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15872217/