发帖求解: 怎么从一个Colletion 类型的转换为 string[] 数组类型? 内详
发帖求解: 如何从一个Colletion 类型的转换为 string[] 数组类型? 内详.
通过代码取得了mc中一系列的匹配值.我想把这些值放到一个数组 string[] r 中.
有没有一句话的方式?
我现在只会写:
能不能写成 string[] r= XXXXXX ;//直接将Colletion 类型的转换为 string[] 数组类型
我试了试 Array.ConvertAll<(Of <(TInput, TOutput>)>) 泛型方法 一直没能成功!
------解决方案--------------------
- C# code
string ss = "a1a2a3a4a5a6a7a8a9"; MatchCollection mc = Regex.Matches(ss, @"a\d"); for (int i = 0; i < mc.Count; i++) { Console.WriteLine(mc[i].Value); }
通过代码取得了mc中一系列的匹配值.我想把这些值放到一个数组 string[] r 中.
有没有一句话的方式?
我现在只会写:
- C# code
string[] r = new string[mc.Count]; for (int i = 0; i < mc.Count; i++) { r[i] = mc[i].Value; }
能不能写成 string[] r= XXXXXX ;//直接将Colletion 类型的转换为 string[] 数组类型
我试了试 Array.ConvertAll<(Of <(TInput, TOutput>)>) 泛型方法 一直没能成功!
------解决方案--------------------
- C# code
private string[] SplitStringArray() { System.Collections.ArrayList list = new System.Collections.ArrayList(); string ss = "a1a2a3a4a5a6a7a8a9"; System.Text.RegularExpressions.MatchCollection mc = System.Text.RegularExpressions.Regex.Matches(ss, @"a\d"); for (int i = 0; i < mc.Count; i++) { list.Add(mc[i].Value.ToString()); Console.WriteLine(mc[i].Value); } return (String[])list.ToArray(typeof(string)); }
------解决方案--------------------
没必要吧。。。
MatchCollection 的内容远远不止一个string[],做这种只能说华而不实,一定要做,自己写个方法,处理一下,单纯取$0的内容存到一个数组里,使用时调用这个方法也就是了
当然,对于一些简单的,可以用Regex.Split来做
- C# code
string ss = "a1a2a3a4a5a6a7a8a9"; string[] result = Regex.Split(ss, @"(?<=a\d+)(?=a\d+)", RegexOptions.IgnoreCase);