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方法。为什么人们对这个问题投了否决票?我认为这是一个完全正确的问题。我认为这个版本只是因为它删除了空元素…酷!