我有一个包含超过100个项目的列表框我希望这100个项目用逗号分隔,例如:''abc','def''我想在select子句中搜索
List<string> SelectedValue = new List<string>();
foreach (ListItem lst in ListBox2.Items)
{
if (lst.Selected)
{
SelectedValue.Add(lst.Value);
}
}
string.Join(",",SelectedValue.Select(x=>string.Format("'{0}'",x)));
它给我错误'最好的重载方法匹配'string.join有一些无效的参数,这里做错了什么
答案 0 :(得分:0)
我可以建议使用StringBuilder
稍微不同的方法,而不是将项目放入List
对象吗?无论如何,你正在将这些转换为CSV,所以为什么不像这样构建它......
var SB = new StringBuilder();
foreach (ListItem lst in ListBox2.Items)
{
if (lst.Selected)
{
SB.Append("'" + list.value + "',");
}
}
var FinalString = SB.ToString().Substring(0, (SB.Length - 1));
答案 1 :(得分:0)
您需要将SelectedValue.Select
的结果转换为数组:
String result = string.Join(",", SelectedValue.Select(x => string.Format("'{0}'", x)).ToArray());`
答案 2 :(得分:0)
你linq查询返回类型IEnumerable
的结果,你必须将它转换为字符串数组:
List<string> selectedValue = (from ListItem lst in ListBox1.Items
where lst.Selected
select lst.Value).ToList();
//convert to array using ToArray()
string[] arr = selectedValue.Select(x => string.Format("'{0}'", x)).ToArray();
string data = string.Join(",",arr);