我有一個列表說foo,其中包含類型類A(包含成員FName,LName,總計)的數據。我需要獲取LName爲「foobar」的數據列表。查詢使用LINQ返回列表中的對象
我知道這聽起來是一個簡單的問題,但這讓我氣憤!因爲我會讓會員在運行時返回列表。
在此先感謝
編輯: 對不起怪才,這份名單是Dyanamic名單是Object類型的。我只知道在運行時
我有一個列表說foo,其中包含類型類A(包含成員FName,LName,總計)的數據。我需要獲取LName爲「foobar」的數據列表。查詢使用LINQ返回列表中的對象
我知道這聽起來是一個簡單的問題,但這讓我氣憤!因爲我會讓會員在運行時返回列表。
在此先感謝
編輯: 對不起怪才,這份名單是Dyanamic名單是Object類型的。我只知道在運行時
它可以使用LINQ可以輕鬆完成型A級的公司:
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();
我很抱歉,我忘了mentiion名單是Dyanamic名單是Object類型的。我知道它只在運行期間類型A – 2013-04-08 06:20:54
好的,我已經更新了我的答案。 – MarcinJuraszek 2013-04-08 06:23:45
感謝您的迴應Marcin,a.FName無法使用 - 因爲列表是對象類型的,我將FName作爲字符串。 – 2013-04-08 06:28:35
顯示您的完整代碼.. – 2013-04-08 05:59:23