我通过将长字符串解析为:
来创建多个变量Year
Make
Model
Color
ColorLower
Style
根据记录,我可能会在部分或全部变量中包含详细信息。但在大多数情况下,有些是空白的。在填充变量之后,我将它们添加到数据库字段中,该字段是汽车/车辆的描述。
目前我的if / else块一个接一个,如果变量的长度非零,则连接的描述变量
if (length($Year)>0)
{
$Description == $Description + " " + Year
}
elsif (length($Make) > 0)
$Description == $Description + " " + $Make
} ...and so on
我现在所拥有的是工作,我有兴趣听到有一种更短,更紧凑的方式,我可以最大化我的代码。
谢谢!
答案 0 :(得分:0)
更好的方法是使用StringBuilder
using System;
using System.Text;
namespace stringy
{
class MainClass
{
public static void Main (string[] args)
{
string hello = "Hello World!";
int i = 123;
double d = 3.14;
StringBuilder sb = new StringBuilder();
sb.Append(hello);
sb.Append(i);
sb.Append(d);
Console.WriteLine (sb.ToString());
}
}
}
添加字符串包括大量分配和重新分配。
答案 1 :(得分:0)
string Year = "2015", Make = "Ford", Model = "Rustbucket",
Color = "Red", ColorLower = "Green", Style = "Car";
string[] stuff = { Year, Make, Model, Color, ColorLower, Style };
string Description = "Start ";
Description+=String.Join(" ", stuff.Where(t => t != ""));
答案 2 :(得分:0)
没有痛苦!没有收获!检查和内存优化:
public class Entity{
public string Year {get;set;}
public string Make {get;set;}
public string Model {get;set;}
public string Color {get;set;}
public string ColorLower {get;set;}
public string Style {get;set;}
public string Description{
get {
string format = "{0} ";
StringBuilder sb = new StringBuilder();
sb.Append(!string.IsNullOrEmpty(Year) && !string.IsNullOrEmpty(Year.Trim())
? string.Format(format, Year.Trim()) : string.Empty);
sb.Append(!string.IsNullOrEmpty(Make) && !string.IsNullOrEmpty(Make.Trim())
? string.Format(format, Make.Trim()) : string.Empty);
sb.Append(!string.IsNullOrEmpty(Model) && !string.IsNullOrEmpty(Model.Trim())
? string.Format(format, Model.Trim()) : string.Empty);
sb.Append(!string.IsNullOrEmpty(Color) && !string.IsNullOrEmpty(Color.Trim())
? string.Format(format, Color.Trim()) : string.Empty);
sb.Append(!string.IsNullOrEmpty(ColorLower) && !string.IsNullOrEmpty(ColorLower.Trim())
? string.Format(format, ColorLower.Trim()) : string.Empty);
sb.Append(!string.IsNullOrEmpty(Style) && !string.IsNullOrEmpty(Style.Trim())
? string.Format(format.Trim(), Style.Trim()) : string.Empty);
return sb.ToString();
}
}
}
static void Main()
{
var e1 = new Entity{Year="Y",Make="M",Model="Md",
Color="C",ColorLower="CL",Style="S"};
Console.WriteLine(e1.Description); // 'Y M Md C CL S'
}