c# - 在 C# 中实现多个 IEnumerable

标签 c# ienumerable

我有一个通用类,Class<T> , 实现 IEnumerable<T> . T也被迫实现IConvertable .

我也希望这个类能够伪装成一个类似字符串的对象,所以我想实现IEnumerable<char> .然而,IEnumerable<T>IEnumerable<char>碰撞——如果 T 会发生什么是char

有没有人对如何实现这一目标有任何建议?

编辑:这里有一些说明——我希望能够执行以下操作:

public IEnumerator<T> GetEnumerator()
{
    for (var i = _offset; i < _offset + _length; i++)
        yield return _array[i];
}

public IEnumerator<char> GetEnumerator()
{
    for (var i = _offset; i < _offset + _length; i++)
        yield return _array[i].ToChar(null);
}

最佳答案

Does anyone have any suggestions on how to accomplish this?

泛型类型的声明使得基础类型可以在构造中统一有时是非法的,而且几乎总是一个坏主意。避免,避免,避免。

我的建议:如果您想要一个像字符串一样工作的对象,那么要么覆盖 ToString(),要么声明一个到字符串的显式(或者,我想,隐式)转换。如果用户想要一系列字符,那么他们可以从字符串中获取一个。

关于c# - 在 C# 中实现多个 IEnumerable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4196621/

相关文章:

c# - 如何在 XML 文档中引用 C# 关键字?

c# - 调整位图图像的大小并使线条更粗

c# - 如果未找到结果,则从 IEnumerable 方法返回 NULL

c# - 如何获取 Roslyn 中 NamedTypeSymbol 的所有适用方法,包括扩展方法?

c# - 如何在 Crystal 报表中合并行?

c# - 在 Debug模式下使用 [Conditional ("DEBUG")] 时引用程序集中的替代方法

c# - 在 C# 中将 Tuple IEnumerable 转换为 List<string>

.net - 为什么 IDictionary(非泛型)不继承自 IEnumerable<DictionaryEntry>?

c# - 未优化的 IEnumerable<>.Last with predicate

linq - LINQ2SQL 中的 EntitySet 与表查询性能