我完全不熟悉C#并且在学习的过程中学习.我遇到了一个问题,我希望有经验的程序员可以提供帮助.我在表单中添加了一个CheckedListBox,并添加了一个包含6个项目的集合.除了最后选择的项目之外我还需要一个逗号放在旁边,所以我的问题是:我怎么能告诉C#不要在最后选择的项目旁边放一个逗号?
foreach (object itemChecked in RolesCheckedListBox.CheckedItems)
{
sw.Write(itemChecked.ToString() + ",");
}
Run Code Online (Sandbox Code Playgroud)
感谢您的任何帮助!担
Eli*_*sha 49
它可以使用string.Join()方法完成:
string commaSeparated = string.Join(",",
RolesCheckedListBox.CheckedItems.Select(item => item.ToString());
Run Code Online (Sandbox Code Playgroud)
例如:
string[] names = new []{ "a", "b"};
string separatedNames = string.Join(",", names);
Run Code Online (Sandbox Code Playgroud)
结果separatedNames会是"a,b"
以下是我写的关于这个问题的一些文章:
http://blogs.msdn.com/b/ericlippert/archive/2009/04/13/restating-the-problem.aspx
http://blogs.msdn.com/b/ericlippert/archive/2009/04/15/comma-quibbling.aspx
对第二篇文章的评论有几十个解决方案来解决一个稍微更难的问题; 浏览这些解决方案并了解哪些是优雅的,哪些是您认为粗略的,这是很有教育意义的.
一种增强你的例子的方法可能是:
var index = 0;
foreach (object itemChecked in RolesCheckedListBox.CheckedItems)
{
if ( index>0 ) sw.Write( "," );
sw.Write(itemChecked.ToString());
index++;
}
Run Code Online (Sandbox Code Playgroud)
不优雅,但工作.