我有一个格式为“x,y”的字符串列表。我想把它们全部变成积分。我能找到的最好的Point构造函数有两个整数。 C#将"14,42"
转换为new Point(14,42);
的最佳方法是什么?
我知道正则表达式是/(\d+),(\d+)/
,但是我很难将这两个匹配组转换为C#中的整数。
答案 0 :(得分:11)
像这样:
string[] coords = str.Split(',');
Point point = new Point(int.Parse(coords[0]), int.Parse(coords[1]));
答案 1 :(得分:11)
有Point.Parse
(System.Windows.Point.Parse,WindowsBase.dll),然后您不需要乱用正则表达式或字符串拆分等。
http://msdn.microsoft.com/en-us/library/system.windows.point.parse.aspx
PK: - )
答案 2 :(得分:2)
您可以使用','作为分隔符使用简单的字符串拆分,然后使用int.parse(string)
将其转换为int,并将整数传递给Point构造函数。
答案 3 :(得分:1)
使用Linq这可能是1-liner
//assuming a list of strings like this
var strings = new List<String>{
"13,2",
"2,4"};
//get a list of points
var points = (from s in strings
select new Point(s.split(",")[0], s.split(",")[1]))
.ToList();
// or Point.Parse as PK pointed out
var points = (from s in strings select Point.Parse(s)).ToList();
我正在使用mac来编写这个,所以我无法检查语法,但那应该很接近。