Я пытаюсь написать метод расширения в IEnumerable, который будет применяться только к типам значений и строкам.
public static string MyMethod<T>(this IEnumerable<T> source) where T : struct, string
Однако 'string' не является допустимым ограничением, так как это закрытый класс.
Есть ли способ сделать это?
Edit:
То, что я на самом деле пытаюсь сделать, - это подготовить список значений для предложения "IN" в динамически построенном SQL.
У меня есть много примеров кода, например следующего: я хочу очистить:
sb.AppendLine(string.Format("AND value IN ({0})", string.Join(",", Values.Select(x => x.ToSQL()).ToArray())));
Где ToSQL() имеет код для обработки SqlInjection.