public static SKBranch[] ParseFromString(string @string) { if (string.IsNullOrEmpty(@string)) return new SKBranch[0]; string[] strs = @string.Split(';'); int sz = strs.Length; SKBranch[] skbs = new SKBranch[sz]; for (int i = 0; i <sz; ++i) { if (strs[i] == "" ||strs[i] =="^"){skbs[i]=null;continue;} string[] parts = strs[i].Split(','); SKBranch skb = new SKBranch() { Priority = int.Parse(parts[1]), MixCode = int.Parse(parts[2]) }; string occur = parts[0]; if (occur.StartsWith("!")) { skb.Occur = occur.Substring(1); skb.Lock = true; } else if (occur.StartsWith("?")) { skb.Occur = occur.Substring(1); skb.Lock = null; } else { skb.Occur = occur; skb.Lock = false; } skbs[i] = skb; } return skbs; }
public static SKBranch[] ParseFromStrings(string occurStr, string priortyStr, string mixCodeStr) { string[] occurs = occurStr.Split(','); string[] priorties = priortyStr.Split(','); string[] mixCodes = mixCodeStr.Split(','); int sz = occurs.Length; SKBranch[] skbs = new SKBranch[sz]; for (int i = 0; i < sz; ++i) { if (occurs[i] == "" || occurs[i] == "^") { skbs[i] = null; continue; } SKBranch skb = new SKBranch() { Priority = int.Parse(priorties[i]), MixCode = int.Parse(mixCodes[i]) }; if (occurs[i].StartsWith("!")) { skb.Occur = occurs[i].Substring(1); skb.Lock = true; } else if (occurs[i].StartsWith("?")) { skb.Occur = occurs[i].Substring(1); skb.Lock = null; } else { skb.Occur = occurs[i]; skb.Lock = false; } skbs[i] = skb; } return skbs; }