hvis det er en consol app kan oprette denne structure og så vil ovenstående stadig fungere.
public struct Point { public int x; public int y; public Point(int _x, int _y) { x = _x; y = _y; } public int X { get { return x; } set { x = value; } } public int Y { get { return y; } set { y = value; } } }
ahh.. misforstod at du havde et problem med at få det ud af den string.
string text = @"([xX]=){1}\d{0,100}"; Regex regexp = new Regex(text); int x = int.Parse(regexp.Match("{X=756,Y=304}").Value.Split('=')[1]); regexp = new Regex(text); int y = int.Parse(regexp.Match("{X=756,Y=304}").Value.Split('=')[1]); Point point = new Point(x, y);
ja.. fejlhåndtering skal man nok lige have i mente:P
string text = @"{X=756,Y=304}"; Regex regexp = new Regex(@"([xX]=){1}\d{0,100}"); int x = int.Parse(regexp.Match(text).Value.Split('=')[1]); regexp = new Regex(@"([yY]=){1}\d{0,100}"); int y = int.Parse(regexp.Match(text).Value.Split('=')[1]); Point point = new Point(x, y);
using System; using System.Text.RegularExpressions;
namespace E { public class Program { public static void Main(string[] args) { string text = "{X=756,Y=304}"; Regex re = new Regex(@"(?:{X=)(?<X>\d+)(?:,Y=)(?<Y>\d+)(?:})", RegexOptions.IgnoreCase); Match m = re.Match(text); Console.WriteLine("X=" + m.Groups["X"].Value + " Y=" + m.Groups["Y"].Value); Console.ReadKey(); } } }
jeg har adopteret KALP´s forslag da det er lidt mere simpelt. Men hvad der er mest korrekt / effektiuvt kan jeg ikke med min erfaring vurdere. Det kræver nok en masse benchmark og stress test af sådan en funktion.
MANGE tak for de gode svar. nu der grundlag for nærmere studie og øvelse
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.