Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将字符串拆分为多个值?_C#_Asp.net_Visual Studio_String_Listbox - Fatal编程技术网

C# 如何将字符串拆分为多个值?

C# 如何将字符串拆分为多个值?,c#,asp.net,visual-studio,string,listbox,C#,Asp.net,Visual Studio,String,Listbox,你是怎么分开一根线的 让我们假设我有一个串狗,猫,老鼠,鸟 我的实际目标是将这些动物中的每一个插入到列表框中,以便它们成为列表框中的项目 但是如果我知道如何分割字符串,我想我知道了如何插入这些项目。或者有人知道更好的方法吗 im使用asp c它通过strVar.Split为您提供一个字符串数组 string[] tokens = text.Split(','); for (int i = 0; i < tokens.Length; i++) {

你是怎么分开一根线的

让我们假设我有一个串狗,猫,老鼠,鸟

我的实际目标是将这些动物中的每一个插入到列表框中,以便它们成为列表框中的项目

但是如果我知道如何分割字符串,我想我知道了如何插入这些项目。或者有人知道更好的方法吗


im使用asp c

它通过strVar.Split为您提供一个字符串数组

    string[] tokens = text.Split(',');

    for (int i = 0; i < tokens.Length; i++)
    {
          yourListBox.Add(new ListItem(token[i], token[i]));
    }
"dog, cat, mouse,bird".Split(new[] { ',' });
你试过了吗?如果希望a,b,c最终成为{a,b,c},但a,b,c最终成为{a,b,c},则可能需要一些后处理来删除空白

例如:

private readonly char[] Delimiters = new char[]{','};

private static string[] SplitAndTrim(string input)
{
    string[] tokens = input.Split(Delimiters,
                                  StringSplitOptions.RemoveEmptyEntries);

    // Remove leading and trailing whitespace
    for (int i=0; i < tokens.Length; i++)
    {
        tokens[i] = tokens[i].Trim();
    }
    return tokens;
}
或者简单地说:

targetListBox.Items.AddRange(inputString.Split(','));
或执行以下操作以确保字符串被修剪:

targetListBox.Items.AddRange((from each in inputString.Split(',')
    select each.Trim()).ToArray<string>());
哎呀!正如评论所指出的,它是ASP.NET,因此无法从字符串数组初始化-需要这样做:

var items = (from each in inputString.Split(',')
    select each.Trim()).ToArray<string>();

foreach (var currentItem in items)
{
    targetListBox.Items.Add(new ListItem(currentItem));
}
不必要的Linq版本

from s in str.Split(',')
where !String.IsNullOrEmpty(s.Trim())
select s.Trim();

据我所知,在ASP.NET中,ListBox.Items.AddRange需要一个ListItem[]而不是字符串[]。您也可以使用select new ListItemeach.Trim来实现这一点,如果您喜欢这种类型的话,可以保持linq状态。这很漂亮,很简单。。。它是有效的,但有一些小的修改。阿德,僵尸羊是对的,加上。修剪,但猜猜你得到了。我只想清楚地说明所问的问题,创建一个单元素字符数组是相当多余的。你可以直接将一个字符传递给Split方法。为什么人们对这个问题投了否决票?我认为这是一个完全正确的问题。我认为这个版本只是因为它删除了空元素…酷!