以前我问过关于将列插入数据集的问题。我现在有一个类似的问题......即将两列或多列合并为一列。
假设我有以下数据集:
DataSet ds = new DataSet();
ds.Tables.Add(new DataTable());
ds.Tables[0].Columns.Add("id", typeof(int));
ds.Tables[0].Columns.Add("firstname", typeof(string));
ds.Tables[0].Columns.Add("lastname", typeof(string));
我需要将“名字”和“姓氏”列组合成一个名为“名称”的列。
我最好创建一种将两列合并在一起的方法,还是创建一种可用于将多列合并在一起的更通用的方法?
我的想法是创建一个类似于以下的通用方法:
MergeColumns(字符串格式,字符串mergeColumn,DataTable dt,params string[] columnsToMerge)
用户提供如下格式:“{0} {1}”
mergeColumn 是新列的名称...但它必须能够与将要合并的列之一相同,因为在我的真实世界案例中,我将“name”和“given_names”合并为“name” ...但是如果我需要将“街道”、“城市”、“州”、“邮政编码”等合并到一个名为“地址”的列中,我仍然希望能够使用它。
我认为这将被使用的方式如下:
MergeColumns("{0} {1}", "name", dataTable, "firstname", "lastname");
鉴于上述数据集,我希望得到的数据集如下所示:
DataSet ds = new DataSet();
ds.Tables.Add(new DataTable());
ds.Tables[0].Columns.Add("id", typeof(int));
ds.Tables[0].Columns.Add("name", typeof(string));
这看起来是一种合理的方法吗?这样的方法是否已经存在?我不想重新发明轮子。另外,我是否正在创建一种比我现在实际需要的方法更多的方法?