c#

位置:IT落伍者 >> c# >> 浏览文章

如何用好.NET 的Indexer


发布日期:2022年06月26日
 
如何用好.NET 的Indexer
受到惯性影响我们常常把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;

}])

}

}

}               

上一篇:.net如何统计在线人数

下一篇:C#时间函数的用法时间格式输出