locked
indexs for objects (i4o)套件,官方範例疑問 RRS feed

  • 問題

  • Hi 各位先進前輩們大家好

    近日爬文看到黑大與安德魯大大的有關index for object的文章,提到有一個i4o套件可以實作
    以下範例網址
    安德魯大大i4o示範網址
    https://columns.chicken-house.net/2011/10/30/linq-to-object-2-indexes-for-objects/
    開發者i4o示範網址
    https://staxmanade.com/2008/12/i4o-indexspecification-for/

    兩篇文章都有提到可以把List物件呼叫ToIndexableCollection()方法
    但我也用了List物件一段時間了,沒見過List有這個方法阿@@?

    是我有遺漏什麼部分嗎?
    感謝指教

    • 已編輯 SidLee69 2021年2月20日 上午 01:50 修正標題
    2021年2月19日 上午 03:47

所有回覆

  • 那應該是一個擴充方法 (在 i4o 裡),並非List<T> 的執行個體方法

    就像l你使用 linq to object 時的 Where , Where 這個方法並不是定義在  List<T> class 裡面的執行個體方法, 而是一個定義在 Enumerable class 裡的擴充方法 (extension method)。


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/

    2021年2月19日 下午 04:01
    版主
  • 感謝Bill 叔的回答

    我是從https://github.com/ericksoa/i4o
    上下載整個專案回來,並且用VS編譯後,得到i4o.dll 並加入參考的方式到consoleApp內做測試
    不知道我上述的作法是否正確?

    因為安德魯大大的文章https://columns.chicken-house.net/2011/10/25/code-linq-to-object-%E6%9B%BF%E7%89%A9%E4%BB%B6%E5%8A%A0%E4%B8%8A%E7%B4%A2%E5%BC%95/

    在底部有提到https://archive.codeplex.com/?p=i4o 這個連結,但我download archive後,看不懂要如何引用
    所以才走往Github方向走...

    但我從github上看源碼,並沒有看到這個擴充方法....好暈

    2021年2月20日 上午 02:06
  • 我剛去看了一下,那個專案應該有十年沒有維護了。原始檔我也看不出個甚麼來,感覺好像漏失了一些甚麼東西。

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/

    2021年2月20日 下午 01:02
    版主
  • Google了有關 i4o 和 原作者的gitHub,原作者 Jason Jarrett (https://github.com/staxmanade)沒有上傳任何i40的project,不過有其他人有上傳過叫i40的project,看來這個i40 原本是開發給silverLight用 (namespace 是 i40.Silverlight, https://staxmanade.com/2008/12/i4o-with-silverlight-compiles-first-try/),從2007開始(可能更早,只是那時還沒傳上GitHub),不過最後在GitHub的版本已沒了這個 ToIndexableCollection(),而後來也給DotNetProjects接來發展

    https://github.com/dotnetprojects/IndexedLinq/tree/master/src/IP.i4o

    另外,這個 ToIndexableCollection()也應該只有在那個 某一版本才會有,也就是Bill Chung大大所說,是i40裡的擴充。但找不回那個版本去用,也不會有這擴充。


    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for .NET (2003-2017)
    Microsoft rMVP
    My MSMVP Blog
    請記得將對您有幫助的回覆 標示為解答 以幫助其他尋找解答及參與社群討論的朋友們。
    Please remember to click Mark as Answer on the post that helps you. This can be beneficial to other community members reading the thread.


    2021年3月1日 上午 06:41