C # Общие ограничения для включения типов значений и строк

Я пытаюсь написать метод расширения в IEnumerable, который будет применяться только к типам значений и строкам.

public static string MyMethod<T>(this IEnumerable<T> source) where T : struct, string

Однако 'string' не является допустимым ограничением, поскольку это закрытый класс.

Есть какой-либо способ сделать это?

Редактировать:

На самом деле я пытаюсь подготовить список значений для предложения «IN» в динамически сконструированном SQL.

У меня есть много примеров кода, таких как следующий, который я хочу очистить:

sb.AppendLine(string.Format("AND value IN ({0})", string.Join(",", Values.Select(x => x.ToSQL()).ToArray())));

Где ToSQL () имеет код для обработки SqlInjection.

Ответы на вопрос(5)

Ваш ответ на вопрос