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

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

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

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

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

Изменить:

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

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

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

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

44
задан Brett Postin 5 January 2012 в 16:09
поделиться