【发布时间】:2019-09-08 11:05:28
【问题描述】:
我编写了一个函数,将 DataTable 的值转换为格式为“value1, value2, value3, ...”的字符串。该函数还接受 columnindex 以及一个环绕符(通常是“'”)作为参数。
我不想为此函数编写许多不同的变体(例如,一个带有数据集,一个带有列表等),我只想为此创建一个通用函数。
我已经尝试将 IEnumerable 添加到函数头,但随后在函数内部出现“无法使用 [] 将索引应用到类型为 'T' 的表达式”错误。
我认为我需要为此创建一个界面(?),但我对此没有太多/任何经验。
这是我想把原来的函数变成一个通用函数:
public static string GenerateWhereInListFromData(DataTable dt_data, int columnIndex, string separator)
{
string resultList = string.Join(", ", dt_data.AsEnumerable().Select(tmp => separator + tmp[columnIndex].ToString() + separator));
return resultList;
}
谁能帮忙把它变成一个通用函数,它可以将数据集、数据表、字符串数组、列表和可能的其他东西作为输入参数?
【问题讨论】:
-
如果你这样做是为了生成一个 sql 查询
.. WHERE Column IN ('value1', 'value2', 'value3', ...)- 不要这样做,因为可能存在 Sql Injection 和性能原因。相反,您可以使用Table-Valued Parameters
标签: c# string linq generics join