2013-04-08 91 views
0


我有一個列表說foo,其中包含類型類A(包含成員FName,LName,總計)的數據。我需要獲取LName爲「foobar」的數據列表。查詢使用LINQ返回列表中的對象

我知道這聽起來是一個簡單的問題,但這讓我氣憤!因爲我會讓會員在運行時返回列表。

在此先感謝

編輯: 對不起怪才,這份名單是Dyanamic名單是Object類型的。我只知道在運行時

+3

顯示您的完整代碼.. – 2013-04-08 05:59:23

回答

9

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

我很抱歉,我忘了mentiion名單是Dyanamic名單是Object類型的。我知道它只在運行期間類型A – 2013-04-08 06:20:54

+0

好的,我已經更新了我的答案。 – MarcinJuraszek 2013-04-08 06:23:45

+0

感謝您的迴應Marcin,a.FName無法使用 - 因爲列表是對象類型的,我將FName作爲字符串。 – 2013-04-08 06:28:35

相關問題