C # Restricciones genéricas para incluir tipos de valor Y cadenas

Estoy tratando de escribir un método de extensión en IEnumerable que solo se aplicará a los tipos y cadenas de valores.

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

in embargo, 'string' no es una restricción válida, ya que es una clase sellada.

¿Hay alguna forma de hacer esto?

Editar

o que realmente estoy tratando de hacer es preparar una lista de valores para una cláusula "IN" en un SQL construido dinámicamente.

Tengo muchas instancias de código como el siguiente que quiero limpiar:

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

Where ToSQL () tiene código para manejar SqlInjection.

Respuestas a la pregunta(10)

Su respuesta a la pregunta