2014-10-05 47 views
0

我正在嘗試使用XMLSoccer.com製作一個「自動足球聯賽吸氣器」。他們有庫.dll文件,我設法做到這一點在下面的視頻指示https://www.youtube.com/watch?v=XkXHo5LhKzA從C#中的通用列表中獲取預定義類的var值

但是,返回容器的代碼如下

var liveMatches = requester.GetAllLeagues(); 

我試過的liveMatches到和的getType我得到了類型「System.Collections.Generic.List`1 [XMLSoccerCOM.League]」,因此看起來像是List(T)這樣的通用列表。但是我的代碼中沒有定義T類,因爲它是從XMLsoccer.com返回的,我無法對它做任何事情。

我用

dataGridView1.DataSource = liveMatches; 

顯示liveMatches到GridView,有這麼多的列。我認爲他們是T型的私人變種。

爲了確保,我試圖

liveMatches.Find(f => f.Name == "Scottish Premier League"); 

檢查出什麼在liveMaches。在「f」之後是datagridview中的那些列標題。假設我不想從列表中的第2行獲得像「Name」,「Stadium」和「Homegoal」這樣的列,那麼我該怎麼做?如果T類型是由我定義的,我可能可以通過getter()來完成它。謝謝。

+1

如果你已經引用了它們的DLL,那麼'XMLSoccerCOM.League'就是在該DLL中定義的。使用「對象瀏覽器」窗口查看項目有權訪問哪些程序集,這些程序集包含哪些名稱空間以及這些名稱空間包含哪些類型。我想你會在那裏找到那種類型。 – jmcilhinney 2014-10-05 04:37:59

+0

是的,它的定義在那裏,但沒有辦法可以讀取數據,我不知道是否還有其他方法來讀取值... – 2014-10-05 05:56:22

+1

爲什麼你需要一種方法?這是一個財產。你得到它的價值,就像你做任何其他財產價值一樣。 – jmcilhinney 2014-10-05 08:07:44

回答

1

這個問題的答案應該很明顯。您的List<XMLSoccerCOM.League>就像其他任何通用List一樣,您的League對象的屬性就像其他任何屬性一樣。你正在試圖使一些非常簡單的事情複雜化,例如

var leagues = requester.GetAllLeagues(); 

foreach (var league in leagues) 
{ 
    MessageBox.Show(league.Name, "Name"); 
} 

您以同樣的方式獲得League對象的任何其他屬性值。如果您只想要列表中的前兩個聯賽,那麼請使用leagues.Take(2)

+0

糟糕,我從來沒有想過這個。 C#對我來說是新的。謝謝,我會試試看。 – 2014-10-05 09:53:32