练习:给定接口编写扩展方法“Indexing”属性的值

我正在做一个练习,但我在理解如何开始时遇到了一些困难。练习如下所示:

给定接口

public interface I { T P {get;} }

编写一个扩展方法“Indexing”,给定一个类型为“I”的元素数组“s”,其中“T”是一个只能用枚举类型实例化的参数,它将生成一个字典,它将类型为“T”的每个值“v”与“s”元素的子序列“s”相关联,其中“v”作为调用该方法时“P”属性的值。

例如,通过使用 *enum Day { Mo, Tu, We, Th, Fr } *,如果“arr”是一个数组 [e0, e1, e2, e3, e4, e5] 其中:

e0 - ... P == Day.Mo ...
e1 - ... P == Day.Mo ...
e2 - ... P == Day.We ...

图片[1]-练习:给定接口编写扩展方法“Indexing”属性的值-唐朝资源网

e3 - ... P == Day.Mo ... e4 - ... P == Day.Fr ... e5 - ... P == Day.We ...

你会得到:

    var  res = arr.Indexing ();
for (int i = 1; i 
// even  changing  arr is  still  true  that
// res[Day.Mo] == [e0 , e1 , e3]
// res[Day.Tu] empty  array
// res[Day.We] = [e2 , e5]

图片[2]-练习:给定接口编写扩展方法“Indexing”属性的值-唐朝资源网

// res[Day.Th] empty array // res[Day.Fr] = [e4]

我不想要一个完全解决的练习,但我需要一个提示才能让事情正常进行。我想我错过了有关 I 实施的一些东西(这是我第一次看到这样的事情)。特别是,我对如何创建扩展方法以及如何测试给定示例有疑问。

提前致谢。

© 版权声明
THE END
喜欢就支持一下吧
点赞264 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片