string.Join以逗号分隔的值

时间:2011-09-13 08:32:57

标签: c# string checkboxlist

string.join的帮助下,我们可以拆分以逗号分隔的值列表。

string.join(",", array)

我可以对CheckboxList数据源执行相同的操作吗? 我有一个DataValueField,需要逗号分隔值,而不进行迭代。

3 个答案:

答案 0 :(得分:5)

是的,在Fx4中,String.Join()的重载需要IEnumerable<string>

但这取决于DataSource属性实际指向的内容,粗略地说:

string line = string.Join(",",  ComboBox1.DataSource.Select(x => x.Name) );

您可能需要一个不同的lambda,以及一些DataSource的类型转换。

编辑:

var data = (List<MyClass>) (ComboBox1.DataSource);
string line = string.Join(",",  data.Select(x => x.Name) );

答案 1 :(得分:0)

可以利用鲜为人知的CommaDelimitedStringCollection让生活更轻松......

using System.Configuration;

var strList = new CommaDelimitedStringCollection();
strList.AddRange(ComboBox1.DataSource.Select(x => x.Name.ToString()));
var commaListStr = strList.ToString();

此处有更多信息... http://www.idevforfun.com/index.php/2010/02/07/comma-delimited-lists/

答案 2 :(得分:0)

string.Join()解决方案显然有效,如果您觉得LINQ-ing还可以聚合逗号分隔值字符串:

var list = (List<MyClass>)(ComboBox1.DataSource);
string commaSeparatedValues = list.Select(v => v.Name).Aggregate((current, next) => string.Concat(current, ",", next));

在处理大量字符串时,请注意可能的性能命中。