熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

如何用好.NET 的Indexer

2013-11-13 10:00:07  來源: .NET編程 
    受到慣性影響我們常常把indexer作為一個僅僅按照編號反饋結果的入口
    但就如SQL 中的where 我們其實可以做很多
    using System;
    using SystemCollectionsGeneric;
    using SystemText;
    namespace ConsoleApplication
    {
    class C
    {
    float[] temps = new float[] {
    F F F F F F F F F F };
    public float this[int index]
    {
    get { return temps[index]; }
    set { temps[index] = value; }
    }
    public string this[string index]
    {
    get { return index; }
    }
    ///
    /// 可以提供類似 Federated PK的功能
    ///
    ///
    ///
    ///
    public string this[string index int i]
    {
    get { return index + i; }
    }
    ///
    /// 已經可以非常類似SQL語句中Where子句的效果
    ///
    ///
    ///
    public float this[Predicate predicate]
    {
    get
    {
    float[] matches = ArrayFindAll(temps predicate)
    #region 輸出中間結果
    string[] info = ArrayConvertAll(
    matches
    delegate(float f)
    {
    return ConvertToString(f)
    }
    )
    ConsoleWriteLine(stringJoin( info))
    #endregion
    return matches[];
    }
    }
    ///
    /// 已經可以非常類似SQL語句中一組Where子句的效果
    ///
    ///
    ///
    public float this[params Predicate[] predicates]
    {
    get
    {
    // 具體實現可以參考上面的例子基本上和我們寫SQL的Where類似
    // 具體實現略過
    return ;
    }
    }
    }
    class Program
    {
    static void Main(string[] args)
    {
    C c = new C()
    ConsoleWriteLine(c[])
    ConsoleWriteLine(c[Second])
    ConsoleWriteLine(c[Second ])
    ConsoleWriteLine(
    c[
    delegate(float f)
    {
    return f > F;
    }])
    }
    }
    }
From:http://tw.wingwit.com/Article/program/net/201311/12258.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.