如何将字符串转换为Point?

时间:2010-04-27 02:29:58

标签: c# regex

我有一个格式为“x,y”的字符串列表。我想把它们全部变成积分。我能找到的最好的Point构造函数有两个整数。 C#将"14,42"转换为new Point(14,42);的最佳方法是什么?

我知道正则表达式是/(\d+),(\d+)/,但是我很难将这两个匹配组转换为C#中的整数。

4 个答案:

答案 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来编写这个,所以我无法检查语法,但那应该很接近。