Ранее я спрашивал о вставке столбца в набор данных . У меня сейчас похожий вопрос ... а именно, объединение двух или более столбцов в один столбец.
Допустим, у меня есть следующий набор данных:
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 (формат строки, строка mergedColumn, DataTable dt, строка params [] columnsToMerge)
Пользователь предоставляет следующий формат: "{0} {1}"
mergedColumn - это имя нового столбца ... но он должен совпадать с одним из столбцов, которые будут объединены, потому что в моем случае из реального мира я объединяю "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));
Это похоже на разумный подход? Такой метод уже существует? Я не хочу изобретать велосипед. Кроме того, я создаю метод, который делает больше, чем мне нужно сейчас?