用于Unity 3D的分隔字符串扩展
本文关键字:字符串 扩展 分隔 Unity 3D 用于 | 更新日期: 2023-09-27 18:25:23
在这个问题上,有人提出了一个很棒的ToDelimitedString扩展方法,它适用于IEnumerable:
重写List<的ToString();MyClass>
我正试图在Unity 3D 4.0中使用它,因为系统名称空间被覆盖,它会导致问题,到目前为止,我已经这样做了绝对参考:
public static string ToDelimitedString<T> (this IEnumerable<T> source) {
return source.ToDelimitedString (x => x.ToString (),
System.Globalization.CultureInfo.CurrentCulture.TextInfo.ListSeparator);
}
public static string ToDelimitedString<T> (this IEnumerable<T> source, System.Func<T, string> converter) {
return source.ToDelimitedString (converter,
System.Globalization.CultureInfo.CurrentCulture.TextInfo.ListSeparator);
}
public static string ToDelimitedString<T> (this IEnumerable<T> source, string separator) {
return source.ToDelimitedString (x => x.ToString (), separator);
}
public static string ToDelimitedString<T> (this IEnumerable<T> source, System.Func<T, string> converter, string separator) {
return string.Join (separator, source.Select (converter).ToArray ());
}
在Unity 3d中完成这项工作是我试图做的,我的错误是:
Assets/Main/extension.cs(125,55):错误CS1061:键入System.Collections.Generic.IEnumerable<T>' does not contain a definition for
Select"且找不到扩展方法Select' of type
System.Collections.Generic.IEnumerable"(是否缺少using指令或程序集引用?)
注意,我已经改变了一些,我无法克服的是"来源。选择"我相信,这可能吗?感谢,它使调试变得更容易,而不必重写扩展,也许有助于串行化。
您似乎缺少Linq命名空间。
您需要:
using System.Linq;