c# - 将单词从字符串添加到列表c#
问题描述
我无法将字符串中的单词添加到我的列表中。
List<string> list = new List<string>();
string StringSorter = "Hello I like C#";
for (int i = 0; i < StringSorter.Length; i++)
{
string[] splitter = StringSorter.Split(" ");
list.Add(splitter[i]);
}
我希望每个单词都在列表中的索引中。它一直工作到字符串的末尾到达崩溃的地方,并说“索引超出了数组的范围”。我根本不知道如何解决这个问题。
解决方案
您的问题是,您遍历字符串中的每个字符并尝试为每次迭代拆分字符串。
您只需要将字符串拆分一次。
你可以这样做:
string myString = "Hello I like C#";
List<string> list = new List<string>();
string[] splittedStringArray = myString.Split(' ');
foreach (string stringInArray in splittedStringArray) {
list.Add(stringInArray);
}
正如评论中已经提到的,您可以使用 linq 扩展方法ToList()将您的拆分函数的返回数组直接转换为这样的列表:
string myString = "Hello I like C#";
List<string> list = myString.Split(' ').ToList();
您可以做的另一件事是使用列表的AddRange()函数。因此,您无需将返回的数组转换为列表。如果您想多次执行此操作,这也将变得更容易:
string myStringOne = "Hello I like C#";
string myStringTwo = "I copied the top comment for my answere";
List<string> list = new List<string>();
list.AddRange(myStringOne.Split(' '));
list.AddRange(myStringTwo.Split(' '));
推荐阅读
- css - svg 饼图动画在 Firefox 上看起来很笨拙
- python - 如何将此元组转换为列表
- c - 关于返回字符串的结构和函数指针,我有这个问题要解决
- mercurial - 如何理解为什么 hg import --exact 失败
- database - 如何在 JaguarDB 集群中添加更多节点?
- c# - JWT 身份验证如何在单独的 API 项目而不是 AuthServer 项目中验证 http 请求
- coq - 是否有一些策略可以证明这个看似简单的目标?
- flutter - 如何在变换动画颤振中修复位置“Matrix.translationValues”?
- javascript - 如何修复对象作为 React 子项无效
- schema.org - 我可以在一页上使用 Organization、NewsArticle 和 Service Schema.org itemscope 吗?