鉴于:
protected class Marker {
public string Name { get; set; }
public string Lat { get; set; }
public string Long { get; set; }
};
List<Marker> allMarkers = new List<Marker>();
allMarkers.Add(new Marker{Name="Bondi Beach", Lat = "-33.890542", Long = "151.274856"});
allMarkers.Add(new Marker{Name="Coogee Beach", Lat = "-33.923036", Long = "151.259052"});
allMarkers.Add(new Marker{Name="Cronulla Beach", Lat = "-34.028249", Long = "151.157507"});
allMarkers.Add(new Marker{Name="Manly Beach", Lat = "-33.800101", Long = "151.287478"});
allMarkers.Add(new Marker{Name="Maroubra Beach", Lat = "-33.950198", Long = "151.259302"});
Run Code Online (Sandbox Code Playgroud)
我想转换为这种格式的字符串:
['Bondi Beach', -33.890542, 151.274856],
['Coogee Beach', -33.923036, 151.259052],
['Cronulla Beach', -34.028249, 151.157507],
['Manly Beach', -33.800101, 151.287478],
['Maroubra Beach', -33.950198, 151.259302]
Run Code Online (Sandbox Code Playgroud)
是否有一种单行方式来执行此操作,类似于string.Join(),或者我是否必须通过List上的foreach手动执行并使用stringbuilder.appendformat()?
如果Marker是您自己的类,请考虑重写ToString()方法以按照您的方式显示每一行.然后,您可以使用简单的String.Join()方法将它们组合在一起.
protected class Marker
{
public string Name { get; set; }
public string Lat { get; set; }
public string Long { get; set; }
public override string ToString()
{
return String.Format("['{0}', {1}, {2}]", Name, Lat, Long);
}
};
Run Code Online (Sandbox Code Playgroud)
然后,使用:
List<Marker> allMarkers = new List<Marker>();
allMarkers.Add(new Marker { Name = "Bondi Beach", Lat = "-33.890542", Long = "151.274856" });
allMarkers.Add(new Marker { Name = "Coogee Beach", Lat = "-33.923036", Long = "151.259052" });
allMarkers.Add(new Marker { Name = "Cronulla Beach", Lat = "-34.028249", Long = "151.157507" });
allMarkers.Add(new Marker { Name = "Manly Beach", Lat = "-33.800101", Long = "151.287478" });
allMarkers.Add(new Marker { Name = "Maroubra Beach", Lat = "-33.950198", Long = "151.259302" });
Console.Write(String.Join(",\n", allMarkers));
Run Code Online (Sandbox Code Playgroud)
注意:如果您正在处理大量标记并注意到性能不佳,请考虑将该String.Format()行重写为:
return "['" + Name + "', " + Lat.ToString() + ", " + Long.ToString() + "]";
Run Code Online (Sandbox Code Playgroud)
根据您的使用情况,您可能会注意到这更好(或更糟).
| 归档时间: |
|
| 查看次数: |
277 次 |
| 最近记录: |