Слияние двух массивов в один массив - C#

193
21 марта 2018, 02:35

У меня есть два массива:

string[] counts = { "Count 1", "Count 2", "Count 3", "Count 4" }
string[] controls = { "comboBox_username", "textBox_password" }

Мне нужно их сместить друг с другом, чтобы в итоге получилось:

string[] query = { "Count 1 = comboBox_username", "Count 2 = textBox_password", "Count 3", "Count 4" }

Поясню немного. Я хочу создать метод для выполнения Sql команды через метод с аргументами. У меня есть метод:

public static void Compare(Form @this, string table, string[] @counts, string[] @control)
{
    //Объединение двух массивов
    //text1 должен выглядеть таким образом string text1 = "Count1 = comboBox.Text.Trim() AND Count2 = textBox.Tex.Trim()";
    string query = "SELECT " + string.Join(", ", @counts) + " FROM " + table + " WHERE " + text1 + ""; //Строка запроса
    // Команда запроса
}

Инициализация метода: Command это класс, где находится метод.

Command.Compare(Controls.Owner.FindForm(), "Name table", new string[] { "Count 1", "Count 2", "Count 3", "Count 4" }, new string[] { "comboBox_username", "textBox_password" });
Answer 1

Ваш подход чреват SQL injection, поскольку вы отправляете прямиком в бд данные, введённые пользователем. Никогда, запомните, никогда нельзя доверять данным, введённым пользователем

Используйте ORM для работы с базой данных вместо прямых запросов.

Как сливать массивы, уже объяснено на этом же сайте.

Answer 2

Если подходить к вашей задаче формально, то подойдёт что-то такое:

var result = counts.Zip(controls, (l, r) => $"{l} = {r}")
                   .Concat(counts.Skip(controls.Length))
                   .Concat(controls.Skip(counts.Length));

Но в реальности, как говорится более подробно в соседнем ответе, конкатенировать строку ввода пользователя в SQL-запрос — очень плохая идея. Стоит юзеру ввести в textBox_password значение наподобие xxx OR 1 = 1, и подойдёт любой пароль.

READ ALSO
Получить объект из списка по свойству

Получить объект из списка по свойству

Добрый день, имеется список объектов (Photo, Video, Gallery, PhotoMode, VideoMode)Как можно получить галерею по её имени? Пока что идея такая:

219
Побайтная запись данных в структуру С#

Побайтная запись данных в структуру С#

Есть структура данных (С#) необходимо принимая данные из SerialPort записать их в структуру побайтно

205
Компилятор не видит класс внутри класса

Компилятор не видит класс внутри класса

Есть 2 класса в 2-х файлах:

203
Полосатый textBox

Полосатый textBox

Использую RichTextBoxНужно, что бы каждая новая строка была своего цвета, например:

182