code/DataType/DataTypeItem2d.cs

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

namespace WR_Excel
{
    public class DataTypeItem2d : DataType
    {
        char defaultChar = '_';

        //二维数组,原则上必须指定分隔符,先用sp1分割,再用sp2分割
        //如果没有指定,则需要从text中推测
        (char sp1, char sp2) splitChars = (';', ';');


        public DataTypeItem2d(string desp, string name, string fieldType, int col) : base(desp, name, fieldType, col)
        {
            //item[|;]
            if (fieldType.Length == 8)
            {
                splitChars.sp1 = fieldType[5];
                splitChars.sp2 = fieldType[6];
            }
        }

        public override EnumType Type => EnumType.Item2d;

        public override string TypeString => "List<(int type, int id, int num)[]>";
        public override string ConvertMethod => "Data2ItemArrList()";

        public override bool CheckValid(string text)
        {
            if (splitChars.sp1 == splitChars.sp2)
            {
                splitChars = GetSplitChar(text);
            }
            string[] arr2 = text.Split(splitChars.sp1);
            for (int i = 0; i < arr2.Length; i++)
            {
                var arr1 = arr2[i].Split(splitChars.sp2);
                for (int j = 0; j < arr1.Length; j++)
                {
                    if (!StringHelper.Is3Int(arr1[i], defaultChar))
                        return false;
                }
            }
            return true;
        }
        
        //1_2_3;4_5_6;7_8_9=>[[1,2,3],[4,5,6],[7,8,9]]
        public override string GetJsonString(string text,int ident)
        {
            text = text.Replace(splitChars.sp1.ToString(), "],[");
            text = text.Replace(splitChars.sp2.ToString(), ",");
            return $"[[{text}]]";
        }

        private (char, char) GetSplitChar(string text)
        {
            char split1d = '|';
            char split2d = ';';
            //item[|,]
            if (FieldType.Length == 8)
            {
后面还有 31 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。