首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

发帖求解: 怎么从一个Colletion 类型的转换为 string[] 数组类型? 内详

2012-02-01 
发帖求解: 如何从一个Colletion 类型的转换为 string[] 数组类型? 内详.C# codestring ss a1a2a3a4a5a6

发帖求解: 如何从一个Colletion 类型的转换为 string[] 数组类型? 内详.

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); 

热点排行