I have a List(Of String) which corresponds to "types" on our database table.
We are using the DB2 ADO.NET provider and my final query needs to look something like this:
select * from table where type in (@type1, @type2, @type3, @type4)
In the past, I've built the list of query parameters / host variables using a ForEach loop, but I would really like to figure out a way to build them in one line. Of course, I can join all of the strings, but adding the "@" and the incrementing digit is giving me headaches.
Anyone have any ideas on how to do this?
Won't something like this work?
var inList = "(" + string.Join(", ", typeList.Select(t => "@" + t)) + ")";
Based on your comment, how about this?
var inList = "(" +
string.Join(", ", Enumerable.Range(1, argCount).Select(i +> "@type" + i)) +
")";
This is how I generally do this
string.Join(",", items.Select(i => $"'{i}'");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With