C#:逻辑实现改进以及性能

1 .net c# performance c#-4.0

我一直在写一些逻辑来根据某些条件设置属性.我想以更好的方式改进以下逻辑:

string detail = GetDetail();
if (detail.StartsWith("stackoverflow:"))
{
    detailItem.Stackoverflow = detail.Replace("stackoverflow:", string.Empty).Trim();
    continue;
}
if (detail.StartsWith("google:"))
{
    detailItem.Google = detail.Replace("google:", string.Empty).Trim();
    continue;
}
if (detail.StartsWith("facebook:"))
{
    detailItem.Facebook = detail.Replace("facebook:", string.Empty).Trim();
    continue;
}
if (detail.StartsWith("twitter:"))
{
    detailItem.Twitter = detail.Replace("twitter:", string.Empty).Trim();
    continue;
}
Run Code Online (Sandbox Code Playgroud)

Guf*_*ffa 5

您可以在冒号前获取文本并在a中使用它switch.获取冒号后的文本,因此您不必为此重复代码:

string detail = GetDetail();
int index = detail.IndexOf(':');
if (index != -1) {
  string before = detail.Substring(0, index);
  string after = detail.Substring(index + 1).Trim();
  switch (before) {
    case "stackoverflow": detailItem.Stackoverflow = after; break;
    case "google": detailItem.Google = after; break;
    case "facebook": detailItem.Facebook = after; break;
    case "twitter": detailItem.Twitter = after; break;
  }
}
Run Code Online (Sandbox Code Playgroud)