C# 如何用逗号字符分隔字符串?

C# 如何用逗号字符分隔字符串?,c#,string,C#,String,我想用逗号分隔两个字符串(即234229),并尝试添加String.Join()。我有下面提到的代码,在最后一行我遇到了错误。我知道这是一个需要问的基本问题,但我对C#编程语言还不熟悉 string queryEventID = ""; foreach (ListItem lstAssign in lstEvent.Items) { if (lstAssign.Selected == true) {

我想用逗号分隔两个字符串(即234229),并尝试添加
String.Join()
。我有下面提到的代码,在最后一行我遇到了错误。我知道这是一个需要问的基本问题,但我对C#编程语言还不熟悉

 string queryEventID = "";
    foreach (ListItem lstAssign in lstEvent.Items)
    {
       if (lstAssign.Selected == true)
         {                  
            queryEventID = queryEventID + lstAssign.Value + " "; //queryEventID(234 229)                   
            logfield = logfield + "," + lstEvent.SelectedItem.Text;
         }
    }                     
    string queryEventIDs=string.Join(",",queryEventID);//error(cannot convert from string to string[])

您应该使用
集合
进行应用

从文件中:

Join(字符串, 字符串[])
:使用每个元素之间指定的分隔符连接字符串数组的所有元素

下面是一个如何在您的情况下使用它的示例

List<string> queryEventIDList;
foreach (ListItem lstAssign in lstEvent.Items)
{
    if (lstAssign.Selected == true)
    {
        queryEventIDList.Add(lstAssign.Value);                 
        logfield = logfield + "," + lstEvent.SelectedItem.Text;
    }
}
string queryEventIDs = string.Join(",", queryEventIDList);
列表查询通风列表;
foreach(lstEvent.Items中的ListItem lstAssign)
{
如果(lstsign.Selected==true)
{
queryEventList.Add(lstAssign.Value);
logfield=logfield+“,”+lstEvent.SelectedItem.Text;
}
}
string QueryEventId=string.Join(“,”,QueryEventId列表);

您可以使用split函数将字符串转换为集合

        string queryEventID = "";
        foreach (ListItem lstAssign in lstEvent.Items)
        {
            if (lstAssign.Selected == true)
            {
                queryEventID = queryEventID + lstAssign.Value + " "; //queryEventID(234 229)                   
                logfield = logfield + "," + lstEvent.SelectedItem.Text;
            }
        }

        string queryEventIDs = string.Join(",", queryEventID.Split(' '));
您可以尝试Linq来查询集合:

using System.Linq;

... 

string queryEventID = string.Join(",", lstEvent  // Join query data:  
  .Items                                         //   Having lstEvent.Items
  .OfType<ListItem>()                            //   Obtain IEnumerable<ListItem>
  .Where(item => item.Selected)                  //   Selected only
  .Select(item => item.Value));                  //   Value (not item)

queryEventID是数组吗?它看起来像一根长而大的绳子,里面有空格。。输出显示循环运行后,
queryventid
中的数据是什么样子的。这就是预期的输出
string.Join()
中的第二个参数必须是一个数组。在if语句之后,我认为您需要
+=
而不是
=
。这将附加到字符串,而不是每次都覆盖它。您也可以在该点添加逗号。我正在从列表框中选择两个事件,即id为234的A和id为229的B。循环后,queryEventID获取所选事件的id为234 229…..我希望它是234229I,因为我无法从System.collections.generic.list转换为queryEventID列表的字符串[](我刚刚编辑了答案以包含此…)使用
QueryEventId列表上的
ToArray()
方法,如下所示:
string QueryEventId=string.Join(“,”,QueryEventId.ToArray());
No,它应该可以处理从“IEnumable”实现的列表和其他集合。这里的情况可能不同。无法将queryEvents的System.collections.generic.list转换为字符串[](最后一行)谢谢你这么多朋友…:)…它非常有效…:)
string[] queryEvents = lstEvent  
  .Items                             
  .OfType<ListItem>()                
  .Where(item => item.Selected)      
  .Select(item => item.Value)
  .ToArray();

string queryEventID = string.Join(",", queryEvents);