我一直在写一些逻辑来根据某些条件设置属性.我想以更好的方式改进以下逻辑:
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)
您可以在冒号前获取文本并在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)