c# 在命令行中输入任意10个字符串,根据字符串类型将输入的数据放入到不同数组中,最后将数组进行排序

c# 在命令行中输入任意10个字符串,根据字符串类型将输入的数据放入到不同数组中,最后将数组进行排序

问题描述:

1、输入的字符串,可以是手机、邮箱、身份证等
2、只将手机、邮箱的字符串筛选出来放到两个数组中,其余的放入yi'ge'shu'zu'zhon
3、数组按照升序排序,比如数组[6,3,8,2,4],按照升序排序后结果为[2,3,4,6,8]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace Q712950
{
    class Program
    {
        static string Classify(string s)
        {
            if (Regex.IsMatch(s, "1[35678]\\d{9}")) return "手机";
            if (Regex.IsMatch(s, @"[a-zA-Z\d_\-]+@[a-zA-Z\d_\-]+\.[a-zA-Z\d_\-]+")) return "邮箱";
            return "其它";
        }
        static void Main(string[] args)
        {
            string[] arr = new string[10];
            for (int i = 0; i < arr.Length; i++)
                arr[i] = Console.ReadLine();
            var query = arr.GroupBy(Classify).Select(x => new { key = x.Key, value = x.OrderBy(y => y) });
            foreach (var item in query)
            {
                Console.WriteLine(item.key + ":");
                Console.WriteLine("\t" + string.Join(", ", item.value));
            }
        }
    }
}

图片说明

如果问题得到解决,请点我回答左上角的采纳,谢谢