有没有提供基本选择机制的课程?例如:
想象一下,我有使用C#编写的WAVE文件和简单的WAV-Editor。现在我可以将这个波形文件以图形表示形式显示为波形。在主菜单中,我可以点击编辑 - >选择All,将选择我的所有样本。
MySelector ms = new MySelector (0, numOfSamples-1);
ms.SelectAll;
当然,我可以选择范围块:
ms.Select (from, to);
甚至反转:
ms.InvertSelection ();
多选:
ms.AppendSelection (from ,to);
获取有关所选样本的信息:
for (int i=0; i< ms.Size; i++)
if (ms.SelectedAt (i)) DoSomeLogic ();
那么,那个班级已经写好了,还是我应该把它写成:O?
THX。
答案 0 :(得分:1)
我无法找到任何“官方”(内置于框架中)的课程,这些课程模糊地与您描述的内容相匹配,但我发现this article可以帮助您前进 - 我可以'看到等同于你的InvertSelection()
方法,但除此之外看起来很有希望。
编辑:进一步搜索后,我发现Jon Skeet在他的C#书中有一章关于创建通用范围类 - 请参阅他的网站here上的摘录。
答案 1 :(得分:1)
我不知道框架中只有这个的东西。看起来像是高度依赖于你想要如何跟踪选择(Selected
属性,索引范围)的东西。
答案 2 :(得分:1)
你已经写了这课多少课?事实上,我看到你描述
如果您有wave数据的API / POCO,您可以在其上实现通用或访问者模式以获得所需的功能。我不确定我是否知道.net框架中的通用“样本范围”项目。
但是,作为示例,您可以查看Building a Generic Range class处的代码示例,看看是否可以使用它。我不完全确定我同意他的一些操作员超载,但它可能是你开始的地方。