可能重复:
String vs StringBuilder
我刚刚重温了一些我曾经拿过VB.NET的书.我不确定我是否已经掌握了这一点,了解StringBuilder是如何/是什么.
使用指南是什么?如果要连接2个字符串或50个字符串,最好使用它吗?
或者当总字符串长度大于128个字符时?
或者,只要您使用它来将字符串添加到一起,您会看到性能优势吗?
在哪种情况下,最好使用StringBuilder实例来构建SQL语句string.format("Select * from x where y = {0}",1)?
总是让我感到震惊的是,声明另一个变量并包含名称空间对小字符串连接不利,但我现在不确定.
对不起,很多文档告诉你要使用什么,而不是什么是最好的.
一开始,我们有这个基本的枚举.
public enum E_Levels {
[ValueOfEnum("Low level")]
LOW,
[ValueOfEnum("Normal level")]
NORMAL,
[ValueOfEnum("High level")]
HIGH
}
Run Code Online (Sandbox Code Playgroud)
而且我想得到List<string> 任何一个枚举.这样的东西Extensions.GetValuesOfEnum<E_Levels>()可以返回List<string>"低级别","正常级别"和"高级别".
StackOF帮助我获得了一个值属性:
public static class Extensions {
public static string ToValueOfEnum(this Enum value) {
FieldInfo fieldInfo = value.GetType().GetField(value.ToString());
ValueOfEnum[] attribs = fieldInfo.GetCustomAttributes(typeof(ValueOfEnum), false) as ValueOfEnum[];
return attribs.Length > 0 ? attribs[0].value : null;
}
}
Run Code Online (Sandbox Code Playgroud)
无论枚举如何,我都可以调用这种方法:E_Levels.LOW.ToValueOfEnum().
此外,StackOF帮助我获得了List<string>一个特定的枚举.我在控制器中制作了这个方法:
private List<string> GetLevels() {
List<string> levelsToReturn = new List<string>();
var levels = Enum.GetValues(typeof(E_Levels)).Cast<E_Levels>(); …Run Code Online (Sandbox Code Playgroud)