Tag: indexer

索引器作为C#中接口的一部分

在C#中,将索引器声明为接口的一部分的语法是什么? 它还是这个[]吗? 在界面中使用this关键字有点奇怪。

动态linq:有没有办法通过索引访问对象数据?

我需要使用Dynamic Linq进行一些内存中过滤。 我的对象只有一个索引器: public object this[int index] { } 访问我的数据就像:object [0],object [1],… 所以我的查询是这样的: // get FilterText from user at runtime // eg. filterText can be: [0] > 100 and [1] = “wpf” collection.AsQueryable().where(filterText); 有没有办法做到这一点?

为什么Array类没有直接暴露其索引器?

要回答的事情: 不要担心方差 ,而有问题的项目是Array而不是T[] 。 多维数组的类似情况是[ 这里 ] 也就是说,N-dims线性变换总是可行的。 因此,这个问题引起了我的注意,因为它已经为线性索引器实现了IList 。 题: 在我的代码中,我有以下声明: public static Array ToArray(this T source); 我的代码知道如何使souce呈现一个数组(在运行时)。 我试图让消费代码直接访问其索引器。 但如果没有“作为IList”,它就不可能做到。 返回object[]可能需要额外的转换/转换,这就是我要阻止做的事情。 我能做的是: public static IList ToArray(this T source); 但我认为名为ToArray的方法返回一个看起来很奇怪的IList 。 因此,我对此感到困惑: 在Array的声明中,有 object IList.this[int index]; 这样我们就可以 Array a; a=Array.CreateInstance(typeof(char), 1); (a as IList)[0]=’a’; 但我们做不到 a[0]=’a’; 除非它被宣布为 public object this[int index]; 我能看到的唯一区别是它需要我们通过实现它的接口IList显式地使用它的索引器,但为什么呢? 有好处吗? 或者是否存在暴露问题?

什么时候应该使用C#索引器?

我想更多地使用索引器,但我不确定何时使用它们。 我在网上找到的都是使用MyClass和IndexerClass等类的例子。 在有学生和教师的学校系统中,每个教师都有一份他们负责的学生名单 – 在这种情况下是否需要索引者? 为简单起见:每个学生只能属于一位教师。