答案 0 :(得分:5)
您是否会考虑ToString为集合/可枚举类型提供有用的输出?这会违反最不意外的原则吗?
不,是的。这将是完全出乎意料的行为,因为它的行为与其他所有集合类型不同。
至于此:
如何转换回字符串,因为没有内置支持转换IEnumerable> char<容易回到一个字符串?
就个人而言,我只会使用string constructor taking an array:
string result = new string(mySlice.ToArray());
这是明确的,理解的和期望的 - 我期望通过将对象传递给构造函数来创建新的字符串。
答案 1 :(得分:1)
您的难题的原因可能是您将string
视为ICollection<char>
。您没有提供有关您尝试解决的问题的详细信息,但这可能是错误的假设。
字符串确实是IEnumerable<char>
。但是你已经注意到假设直接映射到一组字符会产生问题。字符串在框架中太“特殊”了。
从另一端看,明显的是ISlice<char>
和ISlice<byte>
之间的差异是你可以将前者连接成一个字符串吗?是否会对后者进行连接操作才有意义?那么ISlice<string>
呢?我不应该能够连接那些吗?
对不起,我没有提供具体的答案,但也许这些问题会为您指出解决问题的正确方法。