C# dt=新数据表(“输出数据”); DataRow dr=dt.NewRow(); 添加(“性别”,类型(字符串)); 添加(“DateTo”,typeof(DateTime)); 添加(“DateFrom”,typeof(DateTime)); 添加(“宗

C# dt=新数据表(“输出数据”); DataRow dr=dt.NewRow(); 添加(“性别”,类型(字符串)); 添加(“DateTo”,typeof(DateTime)); 添加(“DateFrom”,typeof(DateTime)); 添加(“宗,c#,jquery,datatable,C#,Jquery,Datatable,dt=新数据表(“输出数据”); DataRow dr=dt.NewRow(); 添加(“性别”,类型(字符串)); 添加(“DateTo”,typeof(DateTime)); 添加(“DateFrom”,typeof(DateTime)); 添加(“宗教”,类型(字符串)); 添加(“年龄”,类型(int)); 添加(“每日小时”,类型(int)); 添加(“其他服务”,类型(字符串)); 添加(“注释”,类型(字符串)); 对于(int i=0;ix.ColumnName.StartsWi

dt=新数据表(“输出数据”); DataRow dr=dt.NewRow(); 添加(“性别”,类型(字符串)); 添加(“DateTo”,typeof(DateTime)); 添加(“DateFrom”,typeof(DateTime)); 添加(“宗教”,类型(字符串)); 添加(“年龄”,类型(int)); 添加(“每日小时”,类型(int)); 添加(“其他服务”,类型(字符串)); 添加(“注释”,类型(字符串)); 对于(int i=0;ix.ColumnName.StartsWith(“任务”).Count(); 对于(int i=numberTasks;i如果可能的话,请在这里分享一些例子好吗?如果可能的话,请在这里分享一些例子好吗?如何调用此方法?如果我们想为Taskarray添加多行,我们应该怎么做?这段代码正在为搜索任务添加列?这正是我所需要的!这也适用于对象数组而不是列表吗?您必须修改以下内容:obj.Max(x=>x.TasksArr.Length);如何调用此方法?如果我们想为Taskarray添加多行,那么应该怎么做?这段代码正在为搜索任务添加列?这正是我所需要的!这也适用于对象数组而不是列表吗?您必须修改以下内容:obj.Max(x=>x.TasksArr.Length);
public DataTable objToDataTable(RecomData obj)
        {
            DataTable dt = new DataTable("OutputData");

            DataRow dr = dt.NewRow();
            dt.Rows.Add(dr);

            obj.GetType().GetProperties().ToList().ForEach(f =>
            {
                try
                {
                    f.GetValue(obj, null);
                    dt.Columns.Add(f.Name, f.PropertyType);
                    dt.Rows[0][f.Name] = f.GetValue(obj, null);
                }
                catch { }
            });
            return dt;
        }
public class RecomData
    {

        public int UserID { get; set; }

        public string Gender { get; set; }
        public string DateTo { get; set; }
        public string DateFrom { get; set; }
        public string Relegion { get; set; }
        public string Age { get; set; }
        public string DailyHrs { get; set; }
        public string OtherServices { get; set; }
        public string Comments { get; set; }
        public string[] TasksArr { get; set; }
    }

}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            RecomData recomData = new RecomData();
            List<RecomData> data = new List<RecomData>();
            recomData.objToDataTable(data, true);
        }
    }
    public class RecomData
    {

        public int UserID { get; set; }

        public string Gender { get; set; }
        public DateTime DateTo { get; set; }
        public DateTime DateFrom { get; set; }
        public string Relegion { get; set; }
        public int Age { get; set; }
        public int DailyHrs { get; set; }
        public string OtherServices { get; set; }
        public string Comments { get; set; }
        public string[] TasksArr { get; set; }

        DataTable dt = null;

        public DataTable objToDataTable(List<RecomData> obj, Boolean createTable)
        {
            int maxTaskArr = obj.Max(x => x.TasksArr.Length);

            if (createTable)
            {
                dt = new DataTable("OutputData");
                DataRow dr = dt.NewRow();

                dt.Columns.Add("Gender", typeof(string));
                dt.Columns.Add("DateTo", typeof(DateTime));
                dt.Columns.Add("DateFrom", typeof(DateTime));
                dt.Columns.Add("Religion", typeof(string));
                dt.Columns.Add("Age", typeof(int));
                dt.Columns.Add("DailyHrs", typeof(int));
                dt.Columns.Add("OtherServices", typeof(string));
                dt.Columns.Add("Comments", typeof(string));

                for (int i = 0; i < maxTaskArr; i++)
                {
                    dt.Columns.Add("Task_" + i.ToString(), typeof(string));
                }
            }
            else
            {
                int numberTasks = dt.Columns.Cast<DataColumn>().Where(x => x.ColumnName.StartsWith("Task_")).Count();
                for (int i = numberTasks; i < maxTaskArr; i++)
                {
                    dt.Columns.Add("Task_" + i.ToString(), typeof(string));
                }
            }

            foreach (RecomData recomData in obj)
            {
                DataRow newRow = dt.Rows.Add();

                newRow["Gender"] = recomData.Gender;
                newRow["DateTo"] = recomData.DateTo;
                newRow["DateFrom"] = recomData.DateFrom;
                newRow["Religion"] = recomData.Relegion;
                newRow["Age"] = recomData.Age;
                newRow["DailyHrs"] = recomData.DailyHrs;
                newRow["OtherServices"] = recomData.OtherServices;

                int index = 0;
                foreach (string task in recomData.TasksArr)
                {
                    newRow["Task_" + index.ToString()] = task;
                }

            }
            return dt;
        }
    }

}